0

我有一个抽象类

public abstract class BaseClass
{
    public abstract void CreateGraph(){}
}

[CustomAttribute(Property1 = value , Property2 = value2)]
public class Graph1 : BaseClass
{
 public override void CreateGraph()
     {
       //implementation
     }
}

如何创建Graph1 使用CustomAttribute属性值的对象。它是创建对象的好方法吗?

4

3 回答 3

0

如果你想要自定义属性,你应该定义一个继承自 System.Attribute 的类。实际上,如果您在 System.AttributeUsage 中将 AllowMultiple 参数设置为 true,您可以多次使用不同值的自定义属性。

你可以在这里查看

但是,您不需要它来“创建对象”,我不确定您在这里所说的“好方法”是什么意思。正如 sten 提到的,您应该查看 GoF 设计模式以获得最佳实践,具体取决于您需要做什么。

于 2013-01-07T16:58:09.253 回答
0

不,这不是一个好方法,因为在 .NET 中,属性值必须在编译时知道。例如valuevalue2在您的示例中只能是常量值,这非常限制了设置值的可能性。

于 2013-01-07T16:49:09.520 回答
0

无需为此使用属性,只需遵循常见的面向对象设计即可。查看工厂设计模式

于 2013-01-07T16:49:49.307 回答