基于自定义属性创建对象
本文关键字:创建对象 自定义属性 | 更新日期: 2023-09-27 17:51:02
我有一个抽象类
public abstract class BaseClass
{
public abstract void CreateGraph(){}
}
[CustomAttribute(Property1 = value , Property2 = value2)]
public class Graph1 : BaseClass
{
public override void CreateGraph()
{
//implementation
}
}
如何使用CustomAttribute
的属性值创建Graph1
的对象。
不,这不是一个好方法,因为在。net中,属性值必须在编译时已知。例如,value
和value2
在您的示例中只能是常量,这相当限制了设置值的可能性。
无需为此使用属性,只需遵循常见的面向对象设计。查看Factory设计模式
如果你想要自定义属性,你应该定义一个继承System.Attribute的类。实际上,如果你在System.AttributeUsage中将AllowMultiple参数设置为true,你可以多次使用不同的值来定制属性。
你可以在这里查看。
然而,你不需要"创建对象",我不确定你这里的"好方法"是什么意思。正如sten提到的,你应该看看GoF为最佳实践设计模式,这取决于您需要做什么。