如果寄存器按以下方式键入,将返回autofac
本文关键字:返回 autofac 方式键 寄存器 如果 | 更新日期: 2023-09-27 18:25:09
我有一个关于autofac的问题。代码:
public interface IA
{
void DoSmth();
}
public interface IB
{
MyClassType SomeProperty { get; }
}
public class C : IA, IB
{
public C (MyClassType value)
{
SomeProperty = value;
}
void DoSmth()
{
//realization
}
MyClassType SomeProperty { get; }
}
builder.RegisterType<C>().As<IA>().InstancePerLifetimeScope();
builder.RegisterType<MyClassType>();
autofac会从未注册的接口初始化属性吗?
在您的情况下,someProperty
是一个只读属性,由C
的构造函数初始化。
someProperty
属性的值将使用C
的构造函数注入。
顺便说一句,Autofac默认情况下不注入读/写属性。如果要注入属性,则必须使用PropertiesAutoWired
方法注册类型。
builder.RegisterType<C>().PropertiesAutowired();
有关详细信息,请参阅文档:属性和方法注入