Unity 依赖注入解决返回 System.NullReferenceException
Unity Dependency Injection Resolve returning System.NullReferenceException
我正在尝试 "resolve" 使用 Unity 依赖注入 class,但 Unity 总是 returns 我 System.NullReferenceException
private IUnityContainer _unityContainer { get; set; }
public void myMethod()
{
_unityContainer = UnityContainer.UnityContainerConfig.Initialize();
IMyclass ObjMyClass = _unityContainer.Resolve<IMyclass >();
ObjMyClass .Init();
}
我的容器:
public class UnityContainerConfig
{
public static IUnityContainer _unityContainer = null;
public static IUnityContainer Initialize()
{
if (_unityContainer == null)
{
_unityContainer = new Microsoft.Practices.Unity.UnityContainer()
.RegisterType<IRepository<Table1>, Table1Repository>(new HttpContextLifetimeManager<IRepository<Table1>>())
.RegisterType<IRepository<Table2>, Table2Repository>(new HttpContextLifetimeManager<IRepository<Table2>>())
.RegisterType<IRepository<Table3>, Table3Repository>(new HttpContextLifetimeManager<IRepository<Table3>>())
.RegisterType<IRepository<Table4>, Table4Repository>(new HttpContextLifetimeManager<IRepository<Table4>>())
.RegisterType<IMyclass, MyClass>(new HttpContextLifetimeManager<IMyclass>());
}
}
return unityContainer;
}
"my class" 构造函数中有 4 个参数接收“4 个表作为存储库”
问题已解决
我不得不重新安装 unity (nuget),安装 UnityOfWork 并注册 "UnityOfWork class"
我正在尝试 "resolve" 使用 Unity 依赖注入 class,但 Unity 总是 returns 我 System.NullReferenceException
private IUnityContainer _unityContainer { get; set; }
public void myMethod()
{
_unityContainer = UnityContainer.UnityContainerConfig.Initialize();
IMyclass ObjMyClass = _unityContainer.Resolve<IMyclass >();
ObjMyClass .Init();
}
我的容器:
public class UnityContainerConfig
{
public static IUnityContainer _unityContainer = null;
public static IUnityContainer Initialize()
{
if (_unityContainer == null)
{
_unityContainer = new Microsoft.Practices.Unity.UnityContainer()
.RegisterType<IRepository<Table1>, Table1Repository>(new HttpContextLifetimeManager<IRepository<Table1>>())
.RegisterType<IRepository<Table2>, Table2Repository>(new HttpContextLifetimeManager<IRepository<Table2>>())
.RegisterType<IRepository<Table3>, Table3Repository>(new HttpContextLifetimeManager<IRepository<Table3>>())
.RegisterType<IRepository<Table4>, Table4Repository>(new HttpContextLifetimeManager<IRepository<Table4>>())
.RegisterType<IMyclass, MyClass>(new HttpContextLifetimeManager<IMyclass>());
}
}
return unityContainer;
}
"my class" 构造函数中有 4 个参数接收“4 个表作为存储库”
问题已解决
我不得不重新安装 unity (nuget),安装 UnityOfWork 并注册 "UnityOfWork class"