2011-01-14 7 views
1

Meine MVC-Lösung besteht aus einem Kern und einem Client, die darauf aufgeteilt sind. Der Kern definiert den Großteil der Anwendung, aber jeder Client verfügt über eine eigene Controller-Assembly und ein eigenes Webprojekt.ASP.NET MVC Ressourcendatei-Strategie

Die Client-Projekte Ressourcen definieren:

  • Text auf der Markup-Seiten
  • Display gerendert werden Attributwerte auf Viewmodels
  • Text für Nachrichten usw. in der Steuerung
  • usw.

Der Kern verwendet sie zu definieren:

  • Ausnahmemeldungen
  • Validierungsmeldungen
  • usw.

Da es Ressourcen, die nur für bestimmte Clients existieren könnte ich eine Reihe von Ressourcen rein für den Kunden haben möchten - (Ressourcen. ClientName-Projekt)

Andere Ressourcen, die vom Kern verwendet werden, müssen in einer Baugruppe im Kern definiert werden.

Dies würde alles gut funktionieren, aber die tatsächlichen Ressourcenwerte auf der Platine variieren von Client zu Client, da das Kernressourcenprojekt im Kern nicht unabhängig geändert werden kann (auch Core-Assemblies können keine Client-Ressourcenprojekte referenzieren).

Idealerweise möchte ich die Ressourcen nicht in eine Assembly einbetten, damit diese Werte bei der Produktion ohne Neuinstallation geändert werden können.

Ich bin mir sicher, dass ich falsch liege, könnte mir jemand eine Anleitung geben?

Antwort

1

Erstellen Sie eine Factory zum Provider ResourceManager, und richten Sie die Factory in jedem Clientprojekt ein, um die entsprechende Ressource aus der aktuellen Assembly bereitzustellen.

BTW, Wenn Sie keine eingebetteten Ressourcen verwenden möchten, erstellen Sie Ihre eigenen ResourceManager, so dass Sie Ressource von wo immer Sie benötigen und die Factory in jedem Client-Projekt einrichten.