是否有一个为using语句实现IDisposable的公共对象列表?

Joh*_*ski 16 c# asp.net dispose idisposable using-statement

我想知道是否有某种小抄对哪些对象与using语句...顺利SQLConnection,MemoryStream等等.

更进一步,甚至可以显示其他"拼图",就像你应该connection.Close()在结束前使用语句括号实际调用一样.

这样的事情存在吗?如果没有,也许我们应该制作一个.

Lan*_*nce 15

也许在http://www.lancemay.com/2010/01/idisposable-cheat-sheet/上浏览我的帖子.不确定这是否是您正在寻找的,但根据原始问题,听起来可能是这样.

  • 凉!这正是我原本想要的! (2认同)
  • 链接已损坏! (2认同)

Dmi*_*erg 10

Microsoft FxCop有一个规则检查您在使用块中使用IDisposbale.


Wim*_*nen 7

以下C#方法将列出在某个程序集中找到的所有IDisposable类型.(使用的名称空间:System,System.Collections.Generic,System.IO,System.Reflection)

  static void PrintDisposableTypesFromFile(String path)
  {
     Assembly assembly = Assembly.LoadFrom(path);
     foreach (Type type in assembly.GetTypes())
        if (type.GetInterface("IDisposable") != null)
           Console.WriteLine(type.FullName);
  }
Run Code Online (Sandbox Code Playgroud)

以下C#方法使用前一个方法对目录及其子目录中的所有程序集执行相同操作,例如"C:\ WINDOWS\Microsoft.NET\Framework\v2.0.50727":

  static void PrintDisposableTypesFromDirectory(DirectoryInfo dir, bool warn)
  {
     foreach (FileInfo file in dir.GetFiles("*.dll"))
     {
        try
        {
           PrintDisposableTypesFromFile(file.FullName);
        }
        catch (Exception ex)
        {
           if (warn)
           {
              Console.Error.WriteLine(
                 String.Format(
                    "WARNING: Skipped {0}: {1}",
                    new object[] { file.FullName, ex.Message }));
           }
        }
     }
     // recurse
     foreach (DirectoryInfo subdir in dir.GetDirectories())
        PrintDisposableTypesFromDirectory(subdir, warn);

  }
Run Code Online (Sandbox Code Playgroud)

我不确定所有一次性用品的列表是否非常有用,但我使用类似的代码来查找其他有趣的内容,例如.NET框架支持的文本编码的完整列表.