2012-06-26 1 views
3

Я немного C# код, который загружает сборку из определенного пути, как так:Как разрешить CA 1009 предупреждение в Visual Studio

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

Когда я компилирую, Visual Studio Анализ кода бросает это 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) говорит: «не использовать 'AssemblyName' с только набором свойств' CodeBase'. " Если вы хотите избежать предупреждения, вы должны явно запретить его с помощью '[SuppressMessage]' вместо того, чтобы работать с FxCop. –

 Смежные вопросы

  • Нет связанных вопросов^_^