Ho scritto una classe che ha alcune dipendenze risolte dal contenitore di unità.Istanza registro unità e risoluzione
Dalla mia classe principale creo un nuovo oggetto
MyObject myObject = new MyObject();
mi registro con la mia Unità Container
UContainer.RegisterInstance<MyObject>(myObject, new ExternallyControlledLifetimeManager());
la creo il tipo che ha bisogno di questo come dipendenza
ConsumerObject consumer = new ConsumerObject();
il consumatore assomiglia a questo:
public class ConsumerObject
{
public ConsumberObject()
{
theObject = (MyObject)UContainer.Resolve(typeof(MyObject));
}
}
questo genera un'eccezione:
Risoluzione della dipendenza non è riuscita, type = "MyObject", name = "". Il messaggio di eccezione è: L'operazione di compilazione corrente (chiave di creazione della chiave di build [MyObject, null]) non è riuscita: il parametro pp non può essere risolto durante il tentativo di chiamare il costruttore MyObject (IPreferenceStorageProvider pp). (Strategia tipo BuildPlanStrategy, indice 3)
Perché la mia chiamata di risoluzione tenta di chiamare un altro contsructor sul tipo? Ho già creato e registrato l'istanza .. Ho anche provato come: theObject = UContainer.Resolve<MyObject>();
non sembra fare alcuna differenza ..
Grazie
il problema è il "MyObject" non è il mio scopo .. Ha circa 15 costruttori .. Posso crearla, ma non ho alcun controllo sulla sua struttura .. Perché Unity sta cercando di rinnovarlo comunque? Ho creato un'istanza e l'ho registrata .. Ora è nel contenitore come un singleton, Non dovrebbe chiamare alcun costruttore .. ??? –