Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unity Dependency Injection Resolve returning System.NullReferenceException

I'm trying to "resolve" a class using Unity Dependency Injection, but Unity always returns me System.NullReferenceException

private IUnityContainer _unityContainer { get; set; }
public void myMethod()
{
    _unityContainer = UnityContainer.UnityContainerConfig.Initialize();
    IMyclass ObjMyClass = _unityContainer.Resolve<IMyclass >();
    ObjMyClass .Init();
}

My container:

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;
}

There are 4 parameters in "my class" constructor which receives the "4 tables as repository"

like image 808
Mario Guadagnin Avatar asked Mar 01 '26 14:03

Mario Guadagnin


1 Answers

The problem have been solved.

I had to re-install the unity (nuget), install UnityOfWork and register the "UnityOfWork class"

like image 158
Mario Guadagnin Avatar answered Mar 04 '26 04:03

Mario Guadagnin



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!