我正在尝试使用 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
implements SomeType
。
我在这里做错了什么,或者 LightInject 有什么方法可以实现我上面描述的行为?
如果不清楚,请告诉我,我可以尝试提供更多信息。谢谢!