C#遍历文件夹下所有文件最短代码

以前用C#遍历文件夹下所有的文件,都是写一个递归来做,最近发现DotNet 4.0里直接有了递归遍历文件夹访问所有文件的API,返回的是IEnumerable<string>,直接用一个foreach就可以遍历了。下面是代码示例

Continue reading C#遍历文件夹下所有文件最短代码

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#]Convert.ChangeType Invalid cast from ‘System.String’ to ‘System.Guid’解决方法

C#项目NLog快速上手篇

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

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

Continue reading C#项目NLog快速上手篇

[C#]HttpContext在ASP.NET MVC Controller里为null的解决方法

在MVC的controller里默认是访问不到HttpContext的,如果直接调用HttpContext,你会发现这个对象总是空的。

下面是一个解决方法可以在Controller里取得当前请求的HttpContext,最好是放在一个基类里这样所有的controller都可以继承。 Continue reading [C#]HttpContext在ASP.NET MVC Controller里为null的解决方法

[C#]把一个流的所有字节复制到另一个流

这篇博文主要记录在C#里把一个流(Stream)里的所有字节复制到另外一个流的几种方法。

  • DotNet 4.5里可以用inStream.CopyToAsync(outStream)
  • DotNet 4.0里可以用inStream.CopyToAsync(outStream)
  • Dotnet 3.5或者更低版本,只能自己写CopyStream方法

Continue reading [C#]把一个流的所有字节复制到另一个流

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 Entity Framework Validation failed for one or more entities的解决方法