基于自定义属性创建对象

本文关键字:创建对象 自定义属性 | 更新日期: 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中,属性值必须在编译时已知。例如,valuevalue2在您的示例中只能是常量,这相当限制了设置值的可能性。

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

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

你可以在这里查看。

然而,你不需要"创建对象",我不确定你这里的"好方法"是什么意思。正如sten提到的,你应该看看GoF为最佳实践设计模式,这取决于您需要做什么。