我有两个字段,如
private IFruit fruit;
private Banana banana;
Banana
的实例是这样创建的:
var banana = new Banana(fruit);
我想为Banana
字段创建一个属性来为我创建Banana
个实例!
答案 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这样的容器提供了这个功能