3

次のような特定のパスからアセンブリをロードするC#コードがあります。

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

コンパイルすると、Visual StudioCodeAnalysisは次の警告をスローします。

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

この警告を(抑制せずに)解決する方法を探しています。私のためにそれを行う代わりの方法はありLoadFromますか(私LoadFile はそれではないことを知っています)?

4

3 に答える 3

3

コードが機能し、期待どおりに機能する場合は、警告を無効にします。警告は、エッジケースがある可能性のあるものに注意を向けるためにあります。CA 1009についての説明を読み、警告を理解している場合は、次に進んでください

特定のパスからロードするLoadFrom場合は、正しい呼び出しである可能性があります。それを完全に削除する唯一の方法は次のとおりです。

  • 特定のパスからロードするための要件を削除します
  • AppDomain異なるプロービングパスを持つカスタムを使用MarshalByRefObjectし、それらの間でチャットするために使用します
于 2012-06-26T07:36:22.743 に答える
3

これは実際には同じことを行いますが、CAの警告を回避します。

assembly = Assembly.Load(new AssemblyName { CodeBase = fileToLoadFullName })
于 2012-10-26T13:26:29.980 に答える
1

達成しようとしていることによっては、を使用できる場合がありAssembly.Loadます。このようにして、アセンブリをGACまたはローカルbinディレクトリに配置できます。

var sampleAssembly = Assembly.Load("SampleAssembly, Version=1.0.2004.0, Culture=neutral, PublicKeyToken=8744b20f8da049e3");
于 2012-06-26T07:36:15.547 に答える