如何在Visual Studio中解决CA 1009警告

时间:2012-06-26 07:29:32

标签: c# visual-studio-2010 code-analysis .net-assembly

我有一些C#代码从某个路径加载程序集,如下所示:

assembly = System.Reflection.Assembly.LoadFrom(assemblyPath);

编译时,Visual Studio Code Analysis会抛出此warning

warning : CA2001 : Microsoft.Reliability : Remove the call to Assembly.LoadFrom ...

我正在寻找解决此警告的方法(不要压制它)。是否有LoadFrom的替代方案可以为我这样做(我知道LoadFile isn't it)?

3 个答案:

答案 0 :(得分:3)

如果您的代码正常工作符合您的期望,那么就会否决该警告。警告是为了引起你注意可能有边缘情况的事情。如果您已经阅读了所说的关于CA 1009的内容,并且您了解了警告,那么:继续前进。

要从特定路径加载,LoadFrom可能是正确的呼叫。完全删除它的唯一方法是:

  • 删除从特定路径加载的要求
  • 使用具有不同探测路径的自定义AppDomain,并使用MarshalByRefObject在它们之间进行聊天

答案 1 :(得分:3)

这在实践中也是如此,但避免了CA警告:

assembly = Assembly.Load(new AssemblyName { CodeBase = fileToLoadFullName })

答案 2 :(得分:1)

根据您要实现的目标,可能可以使用Assembly.Load。这样,您的程序集可以位于GAC或本地bin目录中。

var sampleAssembly = Assembly.Load("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3");