使用AutoFac手动调用属性注入

时间:2012-11-15 02:19:46

标签: autofac

假设所有依赖项都已在程序开头注册。在程序的后续部分,如何使用AutoFac创建一个带有无参数构造函数的新对象,并将注册的属性注入对象?

1 个答案:

答案 0 :(得分:8)

您可以使用PropertiesAutowired在容器中注册对象,然后在需要实例时使用resolve:

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