【发布时间】:2018-11-22 06:22:00
【问题描述】:
尝试使用 autofac 通过属性进行依赖注入。
实例始终为空,并且没有注入依赖项。 下面是需要注入属性的类。
public class UserAccount
{
public IAccountService AccountService { get; set; }
public string Message()
{
return AccountService.Message();
}
}
我尝试了三种不同的方法来注入属性,但都没有成功
方法一:
builder.Register(c => {
var result = new UserAccount();
var dep = c.Resolve<IAccountService>();
result.SetDependency(dep);
return result;
});
方法二:
builder.RegisterType<UserAccount>().PropertiesAutowired();
方法三:
builder.Register(c => new UserAccount { AccountService = c.Resolve<IAccountService>()});
PS : 欢迎上述方法注入。
【问题讨论】:
-
UserAccount对象也是 Autofac 创建的吗?如果您手动创建它(通过使用new运算符),它将不起作用,因为 Autofac 不参与对象创建。 -
@KBO 是的,我正在使用 new 手动创建它,那我该怎么办?
-
请出示说明您如何解析和使用
UserAccount的代码。 -
问题标题中提到的filter属性在哪里? filter属性是什么框架?
标签: c# dependency-injection autofac property-injection