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