私は現在、のインターフェースを持っています
public interface IHandle<T> where T : ICommand
{
void Invoke(T command);
}
構造マップでは、次のタイプの呼び出しで IHandle の特定の実装を取得できるため、すべてのハンドラーが StructureMap に存在することがわかります。
var commandHandler = ObjectFactory.GetInstance<IHandle<SomeCommand>>();
ただし、IHandle.
次のことを試しましたが成功しませんでした
// compile error because it doesn't have a type
ObjectFactory.GetAllInstances<IHandle<>>();
// returns 0 items
ObjectFactory.GetAllInstances<IHandle<ICommand>>();
// has runtime error of "Cannot create arrays of open type."
ObjectFactory.GetAllInstances(typeof(IHandle<>));
ジェネリック インターフェイスのすべてのインスタンスを取得する方法を知っている人はいますか?
助けてくれてありがとう