使用attribute创建类的实例

时间:2011-07-12 09:13:26

标签: c# attributes

我有两个字段,如

private IFruit fruit;
private Banana banana;

Banana的实例是这样创建的:

var banana = new Banana(fruit);

我想为Banana字段创建一个属性来为我创建Banana个实例!

2 个答案:

答案 0 :(得分:1)

属性不会导致执行任何代码 - 您必须使用反射来访问它们。如果需要,可以实现具有此行为的基类,并将反射代码添加到构造函数中:

abstract class AutoCreateBase
{
    public MyBase()
    {
        // Reflection to go through the fields, find the attributes, and use Activator.CreateInstance() on each
    }
}

class MyClass : AutoCreateBase
{
    [AutoCreate]
    private Banana banana;
}

答案 1 :(得分:0)

同样像Unity这样的容器提供了这个功能