Levan
Levan

Reputation: 642

Ninject bind generic to concrete type

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"

Upvotes: 0

Views: 1199

Answers (1)

iuristona
iuristona

Reputation: 927

Try this:

kernel.Bind(typeof(IService<string>)).To(typeof(StringService));

Upvotes: 1

Related Questions