Tag Archives: CSharp

C#实现接口类的时候返回一个完成的Task对象

有时候实现一些接口类的全部方法,某些方法里必须返回一个task,创建一个新任务又怕开销太大,搜了一下,发现下面是一个比较常见的做法

return Task.FromResult(null);

如果用DotNet 4.6的话,就更简单了,直接返回Task.CompletedTask就可以了。

https://msdn.microsoft.com/en-us/library/system.threading.tasks.task.completedtask.aspx

[C#]Convert.ChangeType Invalid cast from ‘System.String’ to ‘System.Guid’解决方法

好像是第三次在写代码的时候遇到这个坑了,在利用反射调用Convert.ChangeType进行类型推算自动转换的时候,总是无法完成string到guid的转换,并且报错

An exception of type 'System.InvalidCastException' occurred in mscorlib.dll but was not handled in user code
Additional information: Invalid cast from 'System.String' to 'System.Guid'.

解决方法便是对Guid的类型对一个单独的处理,通过Guid.Parse,对于其他类型,继续使用Convert.ChangeType Continue reading

C#项目NLog快速上手篇

在猿区里上班,一个基本功就是能自动化的事情就坚决不要手工做。撸主的工作里,大部分的用来解放双手的自动化小工具都是用C#完成的,在写小工具的时候,很多时候需要一个日志模块,来记录工具运行时的错误信息,为日后抓虫提供铁证。NLog就是一个非常轻量灵活的C#日志框架。

这里就介绍一下NLog的最简单的用法和配置,本博文仅适合那些像撸主一样,只想知道怎么快速使用,而没兴趣关心为什么这样能用的童鞋。

Continue reading

Entity Framework Validation failed for one or more entities的解决方法

在使用EneityFramework的SaveChanges(),如果赋值的类型不对,或者没有满足Entity的属性条件,EntityFramework会抛Validation failed for one or more entities的异常,但是这个异常的详细信息里并不直接指出是哪个字段出错了。

解决方法:把SaveChange()包在一个Try里,捕获DbEntityValidationException,打印EntityValidationErrors Continue reading