LightInject と MediatR を使用して汎用リクエスト ハンドラーを作成しようとしています。基本的に、次のようなタイプがあります。
public class SomeType { }
public class InheritedType : SomeType { }
public class Handler : IAsyncRequestHandler<SomeType, SomeResponseType> { }
そしてHandler
、次のように自分の型を LightInject コンテナに登録しました。
registry.RegisterAssembly(typeof(SomeType).Assembly, (s, type) =>
!s.IsClass && type.IsAssignableToGenericType(typeof(IAsyncRequestHandler<,>)
);
しかし、メディエーターを呼び出して の実装を試みると、IAsyncRequestHandler<InheritedType,SomeResponseType>
失敗します。実装Handler
以来、登録を取得することを期待していたでしょう。InheritedType
SomeType
ここで何か間違ったことをしていますか、または上記の動作を LightInject で実現する方法はありますか?
不明な点がある場合はお知らせください。詳しい情報を提供できるよう努めます。ありがとう!