Wie implementiere ich eine generische RepositoryFactory?

8

Ich versuche ein generisches Repository zu implementieren. Das ist, was ich bis jetzt habe ...

%Vor%

Die RepositoryFactory wird von meiner Arbeitseinheitsimplementierung verwendet

%Vor%

Wie auch immer, die Frage, die ich stellen möchte, ist, ob die Implementierung von RepositoryFactory von IWindsorContainer abhängig ist?

Ich brauchte eine Art, nach einem IR-Repository eines beliebigen Typs zu fragen, also macht mein Installer-Code das ...

%Vor%

Das scheint nur gegen das ganze Konzept von IoC zu gehen, aber dann macht die ganze Idee, nach einem Repository zu fragen, das trotzdem.

Bearbeiten (Als Antwort auf die Antwort von miensol )

Ich benutze bereits Windsor, um die Repositories für mich mit dem folgenden Code in meinem Installer zu erstellen ...

%Vor%

Ich habe ServiceLocator in der Vergangenheit benutzt, um zu erreichen, was ich will, aber ich habe gelesen, dass es ein bisschen ein Anti-Pattern ist. Also versuchte ich es zu vermeiden. Obwohl ich zugeben muss, dass ich mir nicht sicher bin, warum, denn was ich getan habe, scheint auch falsch zu sein, da ich Burg Windsor als mein IoC / DI-Framework verwenden muss. Service Locator soll rahmenunabhängig sein.

Also, ich bin ein bisschen verwirrt!

    
Antony Scott 21.12.2010, 15:46
quelle

1 Antwort

5

Ich bin nicht ganz sicher, warum Sie IRepositoryFactory benötigen, wenn Sie ein IoC-Framework verwenden. Abhängigkeiten von bestimmten IoC-Container-Implementierungen, die über die Codebasis verstreut sind, sind jedoch im Allgemeinen keine gute Idee. Meistens, wenn ich wirklich keinen Weg finden kann den Container Abhängigkeiten zu meinen Objekten einfügen zu lassen, benutze ich Service Locator Pattern, hier können Sie eine häufig verwendete Implementierung für .net finden. Dann würde Ihre Fabrikmethode so aussehen:

%Vor%

Trotzdem scheint es, als könnte man Windsor trotzdem dazu bringen, das generische Repository für Sie zu erstellen:

%Vor%

und lassen Sie sie wie folgt in Ihre Objekte injizieren:

%Vor%     
miensol 21.12.2010, 20:38
quelle