我有一些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)?
答案 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");