我有一个被许多 MVC 应用程序使用的 UserModel 类,我试图将其转换为使用 IoC:
public class UserModel
{
public string Login { get; set; }
[DisplayName("Display Name")]
public string DisplayName { get; set; }
public static explicit operator UserModel(string userLogin)
{
IKernel IoC; // Where do I get this from?
var ActiveDirRepo = IoC.Get<IActiveDirectoryRepository>();
var User = ActiveDirRepo.FindById<ActiveDirectoryUser>(userLogin.ToUpper());
return new UserModel()
{
Login = userLogin,
DisplayName = User == null ? userLogin.ToUpper() : User.Name
};
}
}
它有一个从string
to的显式转换运算符UserModel
。以前我只是new
编辑ActiveDirectoryRepository
并使用它,但我想开始使用 IoC/DI。
我现在遇到的问题是,我如何引用我的 IoC 容器(IKernel
)?
我无法从外部将其注入UserModel
,因为操作员正在创建它。