我遇到Unity依赖注入问题。当我尝试使用构造函数注入时,我的注入服务保持为空/空。依赖注入 - Unity构造函数注入不工作,只有getter setter注入
public UserService(IUnitOfWorkIntranet unitOfWork, IUserRepository userRepository)
{
mappingToDomainModel = IntranetMappingToDomainModel.GetMappingToDomainModelInstance;
IntranetAutoMapperConfiguration autoMapper = IntranetAutoMapperConfiguration.GetAutoMapperConfigurationInstance;
unitOfWorkIntranet = unitOfWork;
userRepository = userRepository;
}
但是,当我使用getter时,一切正常。
private IUserRepository _userRepository
{
get
{
return GlobalConfiguration.Configuration.DependencyResolver.GetService(typeof(IUserRepository)) as UserRepository;
}
}
据我知道它是在UnityConfig.cs
container.RegisterType<IUnitOfWorkIntranet, UnitOfWorkIntranet>();
container.RegisterType<IUserService, UserService>();
container.RegisterType<IUserRepository, UserRepository>();
正确配置我失去了一些东西在这里?为什么我的构造函数注入被破坏?
任何帮助是值得欢迎的,关心!
怎样的'UserService'解决? –
@Sergey Shushlyapin感谢您的回复!它在控制器中使用getter setter Dependency Injection(with Unity)解决。 – InSum
你可以这样做,但这是一个解决方法,因为属性注入被认为是可选的。我想''IUserRepository''是'UserService'的一个_must-have_依赖项,所以它应该通过构造函数注入来清除这个关系。 –