vdhant - Non è così che i contenitori sono destinati ad essere utilizzati.
Si desidera utilizzare ISubject
, giusto ?. Quindi se hai superato T si sta rompendo la tua astrazione, perché il chiamante deve sapere che ISubject
, è in realtà un oggetto, e più di questo, è un Subject<T>
e che richiede un concreto T.
Nessun contenitore permetterà che , ma è un problema di progettazione, non un problema di strumenti.
Una cosa per riparare il vostro disegno, sarebbe quello di rendere più esplicito - cambiare ISubject
-ISubject<T>
Poi si potrebbe registrare aperta tipo generico ISubject<>
e associarlo ad aprire tipo generico Subject<>
.
container.Register(Component.For(typeof(ISubject<>))
.ImplementedBy(typeof(Subject<>)));
allora si sarebbe in grado di fare
var fooSubject = container.Resolve<ISubject<Foo>>();
Lei non ha fornito alcun contesto così posso essere fuori pista con la risposta, ma una cosa è certa - di avere un problema di progettazione.
fonte
2009-05-16 13:48:19
Cool, quindi, quello che voglio dire è che devo fornire una versione generica dell'interfaccia e quindi posso fare quello che voglio fare ... mi suona bene. Saluti – vdhant
grazie salvami .. –
Felice di aiutare @EhsanSajjad –