Ghost_Rider_R
Lieutenant
- Registriert
- Nov. 2009
- Beiträge
- 787
Hallo zusammen,
ich habe eine WPF-Anwendung und einen DI-Container, welcher leider intern nicht verwendet wird.
In der Zeile applikation.Run(hauptGUI); wird diese Ausnahme geworfen:
...wurde kein übereinstimmender Konstruktor gefunden. Der Typ kann mit der Arguments- oder der FactoryMethod-Direktive erstellt werden.
Ich habe dabei eine HauptGUI, welche durch meinen DI-Container korrekt zusammengebaut wird. Diese lädt beim Aufruf im Hintergrund eine Page (Seite --> Klasse ,,Bildschirm") nach, welche mein IServiceProvider auch erstellen kann:
var bildschirm = diHoler.HolenBenoetigteInstanz<Bildschirm>();
Dies passiert durch diesen XAML-Code:
Das Problem ist jetzt, dass in der Zeile applikation.Run(hauptGUI); wohl versucht wird ein Objekt von der Klasse Bildschirm zu erzeugen (welche keinen parameterlosen Konstruktor hat) und dabei wird wohl ein eigenständiger / interner IServiceProvider verwendet, welcher die Klasse nicht kennt.
Wie kann ich Visual Studio dazu bringen, dass er meinen IServiceProvider zum Auflösen der Abhängigkeiten verwendet und nicht einen internen?
Vielen Dank schon mal für eure Hilfe.
LG
Ghost Rider
ich habe eine WPF-Anwendung und einen DI-Container, welcher leider intern nicht verwendet wird.
In der Zeile applikation.Run(hauptGUI); wird diese Ausnahme geworfen:
...wurde kein übereinstimmender Konstruktor gefunden. Der Typ kann mit der Arguments- oder der FactoryMethod-Direktive erstellt werden.
Ich habe dabei eine HauptGUI, welche durch meinen DI-Container korrekt zusammengebaut wird. Diese lädt beim Aufruf im Hintergrund eine Page (Seite --> Klasse ,,Bildschirm") nach, welche mein IServiceProvider auch erstellen kann:
var bildschirm = diHoler.HolenBenoetigteInstanz<Bildschirm>();
Dies passiert durch diesen XAML-Code:
Das Problem ist jetzt, dass in der Zeile applikation.Run(hauptGUI); wohl versucht wird ein Objekt von der Klasse Bildschirm zu erzeugen (welche keinen parameterlosen Konstruktor hat) und dabei wird wohl ein eigenständiger / interner IServiceProvider verwendet, welcher die Klasse nicht kennt.
Wie kann ich Visual Studio dazu bringen, dass er meinen IServiceProvider zum Auflösen der Abhängigkeiten verwendet und nicht einen internen?
C#:
class Program
{
[STAThread]
static void Main()
{
try
{
var ratDIErsteller = new RATDIErsteller();
var diHoler = ratDIErsteller.ErstellenDI();
var hauptGUI = diHoler.HolenBenoetigteInstanz<HauptGUI>();
var applikation = diHoler.HolenBenoetigteInstanz<Application>();
//dieser muss zur Auflösung genutzt werden:
var serviceProvider = diHoler.HolenBenoetigteInstanz<IServiceProvider>();
//Hier passiert die Ausnahme:
applikation.Run(hauptGUI);
Environment.Exit(0);
}
catch ()
{
Environment.Exit(1);
}
}
}
Vielen Dank schon mal für eure Hilfe.
LG
Ghost Rider