1
我有這樣的代碼:Ninject GETALL返回重複對象
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
您具有約束力沒有顯示類型的名稱,即,而不是CLS,顯示cls.GetType() –