使用AutoFac手动调用属性注入

Joe*_*Fan 4 autofac

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

nem*_*esv 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
Run Code Online (Sandbox Code Playgroud)

或者,如果您不想在容器中注册,则可以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
Run Code Online (Sandbox Code Playgroud)