2011-12-20 11 views
5

He creado algunos atributos para las propiedades. ahora quiero limitar estos atributos a las propiedades con un cierto tipo de datos? la idea es que se lanzará un error de compilación si se asigna a un tipo diferente. ¿es posible?Uso de atributos C#: solo permite atributos en una propiedad con tipo de datos específico

si no, entonces supongo que tendré que comprobarlo en tiempo de ejecución.

+0

Posible duplicado [http://stackoverflow.com/questions/4959863/how-to-make-net-attribute-only-valid-on-certain-types](http://stackoverflow.com/questions/4959863/how-to-make-net-attribute-only-valid-on-certain-types) – heads5150

+1

No creo que sea un duplicado. eso es para aplicar atributos a una clase. esto es para propiedades con un cierto tipo. – Mel

+0

pero el destino es el mismo :( – Mel

Respuesta

7

Puede escribir una regla personalizada FxCop/ Code Analysis para verificar esto.

FxCop está integrado en VS 2010 bajo el nombre "Code Analyis", puede cambiar el conjunto de reglas en las propiedades del proyecto.

+0

Gracias, ambas respuestas son buenas y posibles soluciones. Podría ir para CA ya que eso es lo que usamos aquí. Sé que probablemente sea algo malo, pero la prueba de unidad no se usa en nuestro equipo. – Mel

+0

@Mel FxCop/Code Analysis es absolutamente una buena opción también. –

4

No, esto no es posible.

Una buena solución consiste en crear una prueba de unidad que recorrerá todas las clases, sus propiedades y comprobará estos criterios de aplicabilidad adicionales. No es tan cómodo como un mensaje de error en tiempo de compilación, pero servirá para el propósito. En caso de que tenga algún tipo de infraestructura de automatización de compilación, el nivel de garantía de calidad será el mismo en la práctica.

Cuestiones relacionadas