У меня есть этот код:
abstract class GenericAbstractClass<T> where T : struct { }
class ImplementationClass : GenericAbstractClass<int> { }
class Program {
static void Main (string[] args)
{
IKernel kernel = new StandardKernel();
kernel.Bind(typeof(GenericAbstractClass<>)).To(typeof(ImplementationClass));
var classes = kernel.GetAll(typeof(GenericAbstractClass<>));
Console.WriteLine(classes.Count()); // Print 2.
foreach (var cls in classes) {
if (cls is ImplementationClass)
Console.WriteLine("cls is ImplementationClass");
}
Console.ReadLine();
}
}
Вывод:
2
cls is ImplementationClass
cls is ImplementationClass
Я ожидаю classes.Count()
результат равен 1.
Почему GetAll
возвращает дубликат объекта, несмотря на то, что я только привязываю GenericClass
к ImplementationClass
?
Что я должен сделать, чтобы GetAll
возвратил все недвойственные объекты?
P.S. Я пользуюсь ninject 2.2