Data una classe con diversi costruttori: come posso dire a Resolve quale costruttore utilizzare?In che modo Unity.Resolve sa quale costruttore usare?
Si consideri il seguente classe di esempio:
public class Foo
{
public Foo() { }
public Foo(IBar bar)
{
Bar = bar;
}
public Foo(string name, IBar bar)
{
Bar = bar;
Name = name;
}
public IBar Bar { get; set; }
public string Name { get; set; }
}
Se voglio creare un oggetto di tipo Foo usando Resolve come si risolverà sapere quale costruttore da usare? E come posso dire di usare quello giusto? Diciamo che ho un container con un IBar registrato - capirà che dovrebbe favorire il costruttore che prende IBar? E se specifico anche una stringa, userà il costruttore (string, IBar)
?
Foo foo = unityContainer.Resolve<Foo>();
E vi prego di ignorare il fatto che probabilmente sarebbe più facile se la classe appena avuto un singolo costruttore ...
Grande. Grazie..! – stiank81
Esattamente quello che stavo cercando! Ho appena decorato il costruttore che voglio usare con [InjectionConstructor] –
Questa è la risposta che salverebbe un weekend. Ben definito. –