2017-11-19 4 views
0

私は、依存性注入に.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/2747https://github.com/grumpydev/TinyIoC/issues/8

誰もがそれを行うことができました(多分、リフレクション経由?)。あるいは、箱の外にそれをサポートするIoCコンテナがありますか?

答えて

0

更新:

これはTinyIoCContainerの癖であるように見えます。コードはUnityContainerで正常に動作します。

関連する問題