vdhant - No es así como se supone contenedores para ser utilizado.
Quiere usar ISubject
, ¿verdad ?. Entonces, si pasó T, está rompiendo su abstracción, porque su interlocutor debe saber que ISubject
, en realidad es un Sujeto, y más que eso, es un Subject<T>
y que requiere un concreto T.
Ningún contenedor permitirá eso , pero es un problema de diseño, no de herramientas.
Una cosa a fijar su diseño, sería para que sea explícita - cambiar ISubject
a ISubject<T>
Posteriormente, se podría registrar abierta genérica tipo ISubject<>
y enlazarlo a abrir el tipo genérico de Subject<>
.
container.Register(Component.For(typeof(ISubject<>))
.ImplementedBy(typeof(Subject<>)));
entonces sería capaz de hacer
var fooSubject = container.Resolve<ISubject<Foo>>();
usted no proporcionó ningún contexto, así que puede estar fuera de la pista con la respuesta, pero una cosa es segura - usted tiene una problema de diseño.
Genial, lo que quiero decir es que necesito proporcionar una versión genérica de la interfaz y luego puedo hacer lo que quiero hacer ... me parece bien. Cheers – vdhant
Gracias me salvó .. –
Feliz de ayudar a @EhsanSajjad –