2012-06-26 4 views
3

내가 같은 특정 경로에서 어셈블리를로드 일부 C# 코드를 한 :은 Visual Studio에서 CA 1009 경고를 해결하는 방법

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

내가 컴파일, 비주얼 스튜디오 코드 분석이 warning 던졌습니다 :

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

나는 (그것을 억제하지 않고)이 경고를 해결하는 방법을 찾고 있어요. 내게 할 LoadFrom에 대한 대안이 있습니까 (나는 LoadFileisn't it을 알고 있습니다)?

답변

3

, 다음 경고를 기각. 경고는 중요한 사건이있을 수있는 것에주의를 기울일 것입니다. 이 무엇인지 읽은 경우 CA 1009에 대한에 대해 다음 사항을 이해하면 이해할 수 있습니다.

특정 경로에서로드하는 경우 LoadFrom이 올 바릅니다.

  • 가 특정 경로
  • 다른 프로빙 - 경로와 사용자 정의 AppDomain를 사용에서로드 요구 사항을 제거하고
그들 사이에 채팅 MarshalByRefObject를 사용에 완전히 그것을 제거 할 수있는 유일한 방법이 될 것이다 실제로
1

달성하려는 목표에 따라 Assembly.Load을 사용할 수 있습니다. 이렇게하면 어셈블리가 GAC 또는 로컬 bin 디렉토리에있을 수 있습니다. 및 작동 코드는을 기대 않으면

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

이 같은 수행하지만, CA 경고 방지 :

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

[MSDN]을 (http://msdn.microsoft.com/en-us/library/x4cw969y.aspx)를 사용하지 마십시오 "라는를 'CodeBase' 속성 만 설정된'AssemblyName'. " 경고를 피하려면 FxCop을 사용하는 대신'[SuppressMessage]'로 명시 적으로 억제해야합니다. –