I want to achieve this type of binding:
interface IService<T>
{
T Get(int id);
}
class StringService : IService<string>
{
public string Get(int id)
{
throw new NotImplementedException();
}
}
kernel.Bind<IService<string>>().To<StringService>();
But it gives me an error, I've seen how to bind IService<> to ConcreteService<> already, but that's not what I want.
Update
It throws Ninject.ActivationException - "Error activating IService No matching bindings are available, and the type is not self-bindable"
StringServiceclass needs to beinternalorpublicfor ninject o be able to pick up it's "default constructor" (parameterless constructor). Because the binding certailny should be correct, we are using this all the time. - BatteryBackupUnitIService(you only got one forIService<string>!). So what's thatIServiceinterface? Is it actuallyIService<T> : IService? - BatteryBackupUnit