Der aktuelle Typ ist eine Schnittstelle und kann nicht konstruiert werden. Vermissen Sie ein Typ-Mapping?

8

Ich habe eine Controller-Klasse, die sich um den Doppelklick-Befehl kümmert und wiederum eine Methode aufruft, die dem Benutzer ein Fenster öffnet. Etwas wie:

%Vor%

In der obigen Zeile wird ein Fehler ausgegeben, der besagt: Der aktuelle Typ, PopupCommand.IPopupDataHandler, ist eine Schnittstelle und kann nicht konstruiert werden. Vermissen Sie ein Typ-Mapping?

Ich habe die DLL aktualisiert, die eine Methode für container.GetService () enthielt, vorher funktionierte es gut.

Ich habe versucht, in Google zu suchen, aber die ähnlichen Probleme haben mehr mit Unity zu tun, und ich bezweifle, dass mein Problem irgendwo mit Unity zusammenhängt.

    
Manali 19.04.2012, 04:27
quelle

2 Antworten

1

Grundsätzlich sagt Ihnen der Compiler, dass Sie versuchen, eine Schnittstelle zu instanziieren.

container.GetService<PopupCommand>() bringt Sie wahrscheinlich auf ein Interface mit dem Namen PopupCommand.IPopupDataHandler zurück, Sie müssen es wahrscheinlich in den benötigten Typ umwandeln oder den Typ in ein Objekt ändern, Sie sollten auch die Einschränkungen der Methode überprüfen - es könnte fehlen die new Einschränkung.

    
G.Y 19.04.2012 07:30
quelle
0

Probieren Sie Addin DefaultController Factory zum Registrieren Ihres Controllers aus. Drei Schritte: Schritt 1 1. Fügen Sie eine Class DefaultControllerFactory in Ihrem Projekt hinzu

%Vor%

Schritt 2: Registrieren Sie es in der Bootstrap-Klasse in der BuildUnityContainer-Methode

%Vor%

Schritt 3: Und registrieren Sie es in der Global.asax-Datei

%Vor%

Und finished. Möge das für dich funktionieren ... Glückliche Kodierung.

    
user5888504 05.02.2016 14:09
quelle

Tags und Links