Tengo una clase que estoy usando como descriptor para un objeto. En ese descriptor, hay varias referencias Type
para las clases que se van a instanciar para diferentes operaciones que involucran ese objeto. Estaba pensando en sacar esas referencias y reemplazarlas con atributos en la clase de descriptor.¿Uso de atributos no autorizado/inapropiado?
De esta:
class MyDescriptor : BaseDescriptor {
public Type Op1Type { get; }
public Type Op2Type { get; }
}
A esto:
[Op1(typeof(foo))]
[Op2(typeof(bar))]
class MyDescriptor : BaseDescriptor {
}
utilizo atributos muy raramente. ¿Esto se consideraría un mal uso de ellos?
¿Ha pensado en usar genéricos en su lugar? – Lazarus
un problema es que está cumpliendo con el requisito de conocer el tipo en tiempo de compilación en la interfaz pública si usa atributos. El uso de métodos virtuales permite el uso de tipos desconocidos en tiempo de compilación. – CodesInChaos
Las clases derivadas pueden tener diferentes números de operaciones, por lo que no podría tener un número estático de parámetros genéricos. – redman