2011-07-12 78 views
1

的实例,我有2个领域,如使用属性来创建

private IFruit fruit; 
private Banana banana; 

Banana一个实例被创建这样的:

var banana = new Banana(fruit); 

我想创建一个属性Banana领域做为我创建Banana实例的工作!

+1

谷歌的依赖注入。它做你正在寻找的东西。 – leppie

+1

不是很清楚你想要什么,对不起。请问,请问你有问题吗? – Tigran

+0

您还可以查看[工厂](http://en.wikipedia.org/wiki/Factory_method_pattern)模式。但你的问题还不够清楚,不能给出一个好的答案。 – dowhilefor

回答

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; 
} 
0

还有些容器像统一提供此功能