私は、依存性注入に.NET NancyのTinyIoCContainerを使用しています。私はそうのように、ジェネリックを通じてインタフェースとその実装を登録しようとしています:TinyIoCContainerジェネリック医薬品の登録
Register(container, typeof(IUserService), typeof(UserService));
private void Register<TInterface, TImplementation>(TinyIoCContainer container)
where TInterface : class
where TImplementation : class, TInterface
{
container.Register<TInterface, TImplementation>();
}
これは私に次の例外与える:
を型のSystem.Typeを登録できません - 抽象クラスやインターフェイスは ではありませんSingletonFactoryの有効な実装タイプ。
これは、SingletonFactoryがジェネリックでは機能しないことを示しています。私もマルチインスタンスとして型を登録しようとしました:
container.Register<TInterface, TImplementation>().AsMultiInstance();
私は同じ例外があります。
私は見つけることができました最も近い質問はわずかに異なる問題で、汎用的なインタフェースについてです: https://github.com/NancyFx/Nancy/issues/2747と https://github.com/grumpydev/TinyIoC/issues/8
誰もがそれを行うことができました(多分、リフレクション経由?)。あるいは、箱の外にそれをサポートするIoCコンテナがありますか?