Supponiamo di avere le seguenti interfacce e classi:
public interface ITest { }
public class Test : ITest { }
In NinjectWebCommon.cs:
kernel.Bind<ITest>().To<Test>();
E dopo questo voglio usare la mia interfaccia ITest:
public class Vehicle
{
private ITest _test = null;
public Vehicle(ITest test)
{
this._test = test;
}
}
public class TestVehicle
{
public Vehicle vehicle = new Vehicle();//this will throw an error, because I haven't parameterless cnstructor in Vehicle class;
}
So che nella classe Vehicle posso eseguire il costruttore senza parametri con il seguente metodo:
public Vehicle()
{
this._test = DependencyResolver.Current.GetService<ITest>();
}
Ma sembra essere una cattiva pratica e non segue il modello di iniezione di dipendenza.
Quindi, come posso risolvere questo?