属性的不雅/不当使用?

red*_*man 5 c# attributes

我有一个类,我用它作为对象的描述符.在该描述符中,有几个Type类的引用要针对涉及该对象的不同操作进行实例化.我正在考虑将这些引用拉出来并用描述符类中的属性替换它们.

由此:

class MyDescriptor : BaseDescriptor {
    public Type Op1Type { get; }
    public Type Op2Type { get; }
}
Run Code Online (Sandbox Code Playgroud)

对此:

[Op1(typeof(foo))]
[Op2(typeof(bar))]
class MyDescriptor : BaseDescriptor {
}
Run Code Online (Sandbox Code Playgroud)

我很少使用属性.这会被认为是对他们的不当使用吗?

IAb*_*act 0

我认为这是属性的一个很好的用途,特别是如果您希望能够在实例化装饰类之前通过反射来实例化装饰类。使用属性有很多好处,这只是其中之一。

无论您的意图如何,我认为实施没有问题。