Есть ли чистый способ привязки к вложенному универсальному «шаблону» в Ninject?
Я знаю, что могу запросить любой произвольный IThing<T>
со следующей привязкой:
kernel.Bind(typeof(IThing<>)).To(typeof(Thing<>));
Однако то, что я действительно хочу, это любой произвольный IThing<Foo<T>>
. Следующее не работает синтаксически:
kernel.Bind(typeof(IThing<Foo<>>)).To(typeof(FooThing<>));
Это работает синтаксически:
kernel.Bind(typeof(IThing<>).MakeGenericType(typeof(Foo<>))).To(typeof(FooThing<>));
Но нинжект не знает, что с этим делать. Может ли Ninject добиться такого?
public interface IFooThing<T> : IThing<Foo<T>>
? потому что тогда можно было бы привязываться как обычноkernel.Bind(typeof(IFooThing<>)).To(typeof(FooThing<>));
- person Daniel J.G.   schedule 06.04.2015