Ich versuche LightInject und MediatR zu verwenden, um generische Anforderungshandler zu erstellen. Grundsätzlich habe ich Typen wie folgt aus:LightInject löst geerbte generische Typen nicht
public class SomeType { }
public class InheritedType : SomeType { }
public class Handler : IAsyncRequestHandler<SomeType, SomeResponseType> { }
Und ich habe meine Handler
Typ in mein LightInject Container registriert wie so:
registry.RegisterAssembly(typeof(SomeType).Assembly, (s, type) =>
!s.IsClass && type.IsAssignableToGenericType(typeof(IAsyncRequestHandler<,>)
);
Allerdings, wenn ich versuchen, und rufen Sie in meinem Vermittler für eine Implementierung von IAsyncRequestHandler<InheritedType,SomeResponseType>
, schlägt es fehl. Ich hätte erwartet, meine registrierte Handler
seit InheritedType
Utensilien SomeType
zu bekommen.
Mache ich hier etwas falsch oder gibt es einen Weg in LightInject, um das oben beschriebene Verhalten zu erreichen?
Lassen Sie mich wissen, wenn es nicht klar ist, und ich kann versuchen, mehr Informationen zur Verfügung zu stellen. Vielen Dank!
ich aroudn es eine andere Art und Weise am Ende arbeiten, um die zusätzliche Schicht von Generika, aber gute Informationen zu vermeiden wissen, danke! Und danke für die tolle Bibliothek! – agc93