property net help custom attributetargets attribute attrib asp c# compiler-construction custom-attributes postsharp

net - Generando una advertencia de tiempo de compilación personalizada C#



help attribute c# (1)

Puedes hacer eso con PostSharp .

Una vez lo hice y les explique cómo hacerlo aquí

Estoy usando VS2008 y me gustaría crear un error / advertencia de tiempo de compilación basado en atributos personalizados en una propiedad (si es posible).

Hay dos casos que me interesan actualmente:

[MyAttribute (typeof(MyClass)]

Donde MyClass tiene que implementar una interfaz. Actualmente afirmo esto en el constructor del atributo, sin embargo, esto no facilita la localización, debido a la naturaleza del seguimiento de la pila:

public MyAttribute (Type MyClassType) { System.Diagnostics.Debug.Assert(typeof(MyInterface).IsAssignableFrom(MyClassType), "Editor must implement interface: " + typeof(MyInterface).Name); }

El segundo caso que me interesa es cuando tengo un tipo definido en un atributo, si ese tipo implementa una interfaz, entonces se debe mostrar una advertencia si no hay otro atributo presente.

IE si (MyClass.Implements (SomeInterface) &&! Exists (SomeAttibute)) {Generate Warning}

[MyAttribute(typeof(MyClass)] // Comment next line to generate warning [Foo ("Bar")]

¡Gracias!