Domanda

OK, sto cercando di impostare una proprietà su un tipo che sto registrando con SM.

Ecco il codice dal Registro di sistema in uno dei miei componenti. Questo viene aggiunto Registro di sistema durante la configurazione da una console app. Quando provo ad accedere alla proprietà EndorsementSpecs dell'istanza oggetto AutoMandatoryEndorsementAggregator, ottengo il 202. Cosa c'è interessante è che posso chiamare GetAllInstances> () dal mio console app e si risolve bene. C'è qualcosa Accedendo a questo codice all'interno OnCreation che causa il 202? io può vedere tutto quello che mi aspettavo in WhatDoIHave (). Ho anche provato un TypeInterceptor con gli stessi risultati.

//register all open generics
cfg.ConnectImplementationsToTypesClosing(typeof
(MandatoryEndorsementSpecBase<>));

ForSingletonOf<IMandatoryEndorsementAggregator<AutoPolicy>>()
                    .Use<AutoMandatoryEndorsementAggregator>()
                    .OnCreation((context, x) =>
                    {

                        var specs =
context.GetAllInstances<MandatoryEndorsementSpecBase<AutoPolicy>>();
                        x.EndorsementSpecs = specs;
                    })
                    ; 
È stato utile?

Soluzione

Siamo spiacenti per deviare le vostre domande vere, ma stai solo cercando di iniettare tutte le istanze di MandatoryEndorsementSpecBase in AutoMandatoryEndorsementAggregatory? Se è così, probabilmente si può uscire solo con rendendolo un parametro del costruttore in modo che siano tutte iniettate automaticamente.

public AutoMandatoryEndorsementAggregatory(MandatoryEndorsementSpecBase<AutoPolicy>[] endorsementSpecs){
  EndorsementSpecs = endorsementSpecs;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top