48 Stimmen

Ninject + Bind generisches Repository

Ich versuche, eine generische IRepository<>-Schnittstelle an mein generisches Repository<> zu binden - aber es gibt immer null zurück?

Ich habe verschiedene Dinge ausprobiert, zum Beispiel:

Bind(typeof(IRepository<CustomerModel>)).To(typeof(Repository<CustomerModel>)); 
Bind(typeof(IRepository<>)).To(typeof(Repository<>)); 

Jedoch wenn ich in eine nicht-generische Schnittstelle und Klasse übergeben, dann funktioniert es wie ein Traum?

83voto

quentin-starin Punkte 25165
Bind(typeof(IRepository<>)).To(typeof(Repository<>));

Dies ist die korrekte Syntax für die Bindung eines offenen Generikums.

Wenn Sie auf Ihre Anfrage keine Antwort erhalten IRepository< of whatever > dann gibt es vielleicht ein anderes Problem in einem Bereich des Codes, den Sie nicht mitgeteilt haben.

3voto

Remo Gloor Punkte 32775

Siehe meine Antwort auf MVC3 Controller-Konstruktor + Ninject .

Die generische Bindung funktioniert in Ninject korrekt. Versuchen Sie einen parameterlosen Konstruktor im Repository zu verwenden. Ich denke, das Problem liegt dort.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X