2012-11-15 61 views
2

假设所有依赖项已经在程序开始时被注册。在程序的后面几点你如何使用AutoFac创建一个带有无参数构造函数的新对象,并将注册的属性注入到对象中?使用AutoFac手动调用属性注入

回答

6

您可以用PropertiesAutowired容器注册您的对象,然后,当你需要一个instace使用解析:

ContainerBuilder builder = new ContainerBuilder(); 
// builder register other dependencies 
builder.RegisterType<MyObject>().PropertiesAutowired(); 

var container = builder.Build(); 

var myObject = container.Resolve<MyObject>(); //the properties will be filled 

或者,如果你不想在容器中注册您可以使用上的InjectProperties方法现有实例:

ContainerBuilder builder = new ContainerBuilder(); 
// builder register other dependencies 

var container = builder.Build(); 

var myObject = new MyObject(); 
container.InjectProperties(myObject); //the properties will be filled