¿Excluir el espacio de nombres completo del análisis de código FxCop?

StackOverflow https://stackoverflow.com/questions/353110

  •  20-08-2019
  •  | 
  •  

Pregunta

¿Es posible excluir un espacio de nombres completo de todos los análisis de FxCop sin dejar de analizar el resto del ensamblaje con SuppressMessageAttribute?

En mi caso actual, tengo un montón de clases generadas por LINQ to SQL que causan muchos problemas de FxCop, y obviamente, no modificaré todos para que coincidan con los estándares de FxCop, ya que muchas de esas modificaciones serían desaparecido si volví a generar las clases.

Sé que FxCop tiene una opción de proyecto para suprimir el análisis del código generado, pero no parece reconocer la entidad y las clases de contexto creadas por LINQ 2 SQL como código generado.

¿Fue útil?

Solución

Si etiqueta sus clases con el atributo [GeneratedCode], puede usar el indicador / ignoregeneratedcode con FxCop como se describe en esta publicación de MSDN:

Preguntas frecuentes: ¿Cómo evito que FxCop dispare advertencias contra el código generado

Puede que tenga que agregar un nuevo archivo de código e implementar nuevas clases parciales allí para agregar el atributo a las clases:

[GeneratedCode]
public partial class MainDataContext { }

Solo asegúrese de agregar todo al espacio de nombres correcto cuando cree su nuevo archivo.

Otros consejos

Agregue un [GeneratedCode] attribute a las clases.
EDITAR : me refería a clases parciales con los mismos nombres, como se explica en la otra respuesta.

Utilice el atributo de código generado, aquí está el publicación de blog del equipo de Code Analysis sobre el tema.

Esto en la parte superior del espacio de nombres debería hacer el truco:

[GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
<Assembly: SuppressMessage("Microsoft.Design", _
    "CA1020:AvoidNamespacesWithFewTypes", _
    Scope:="namespace", _
    Target:="Missico.IO")> 

Ponga la declaración en GlobalSuppressions.vb en la raíz del proyecto.

Todo lo que tengo es un ejemplo de VB.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top