J'essaie d'utiliser LightInject et MediatR pour créer des gestionnaires de requêtes génériques. Au fond, j'ai des types comme les suivants:LightInject ne résout pas les types génériques hérités
public class SomeType { }
public class InheritedType : SomeType { }
public class Handler : IAsyncRequestHandler<SomeType, SomeResponseType> { }
Et je me suis inscrit mon type Handler
dans mon conteneur LightInject comme ceci:
registry.RegisterAssembly(typeof(SomeType).Assembly, (s, type) =>
!s.IsClass && type.IsAssignableToGenericType(typeof(IAsyncRequestHandler<,>)
);
Cependant, quand je tente de faire appel à mon médiateur pour un mise en œuvre de IAsyncRequestHandler<InheritedType,SomeResponseType>
, il échoue. Je m'attendais à obtenir mon enregistré Handler
puisque InheritedType
implémente SomeType
.
Est-ce que je fais quelque chose de mal ici, ou y a-t-il un moyen quelconque dans LightInject d'obtenir le comportement que j'ai décrit ci-dessus? Faites-moi savoir si ce n'est pas clair et je peux essayer et fournir plus d'informations. Merci!
Je fini par travailler aroudn une autre façon d'éviter la couche supplémentaire de génériques, mais bien d'info savoir, merci! Et merci pour la bibliothèque géniale! – agc93