मैं निम्नलिखित श्रेणियां होती हैं:Ninject कई इंजेक्शन इंटरफेस के बंधन
using System;
interface IA { }
class A1 : IA { }
class A2 : IA { }
class B
{
public B(IA a) {}
}
class BProvider : Provider<B>
{
IA _a;
public BProvider(IA a) { _a=a; }
protected override B CreateInstance(IContext context) { return new B(_a); }
}
Ninject मॉड्यूल लोड() कोड:
Bind<IA>().To<A1>();
Bind<IA>().To<A2>();
Bind<B>().ToProvider<BProvider>();
मुख्य कोड:
kernel.GetAll<IA>(); // works fine
kernel.GetAll<B>(); // I expect to get IEnumerable<B> with two elements, but instead of this I get an error that there are multiple bindings of IA and ninject cannot determine which to use
तो सवाल यह है अगर मैं अंतिम कथन को उम्मीद के रूप में काम कर सकता हूं या इसे किसी अन्य तरीके से कर सकता हूं?