我有一个被许多 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
};
}
}
它有一个从stringto的显式转换运算符UserModel。以前我只是new编辑ActiveDirectoryRepository并使用它,但我想开始使用 IoC/DI。
我现在遇到的问题是,我如何引用我的 IoC 容器(IKernel)?
我无法从外部将其注入UserModel,因为操作员正在创建它。