Ich möchte meine Ressourcen in einem anderen Dateiformat als NETs Ressourcen (insbesondere .po) speichern, also schrieb ich einen benutzerdefinierten Ressourcensatz mit einem benutzerdefinierten Ressourcenleser, um sie abzurufen. Ich habe einen ResourceManager mit der statischen Methode CreateFileBasedResourceManager erstellt, die eine neue Instanz des Managers erstellt, der Ressourcen-Sets aus Dateien in einem bestimmten Verzeichnis unter Verwendung des angegebenen Ressourcen-Sets (das benutzerdefinierte, das ich in meinem Fall geschrieben hat) unter Verwendung von Name.culture.resources abruft Dateinamen.C# dateibasierten Ressourcenmanager erweitern
Allerdings möchte ich die Dateinamen Konvention ändern. Ich habe festgestellt, dass es eine überschreibbare GetResourceFileName-Methode für genau diesen Zweck gibt. Aber mit reflector habe ich festgestellt, dass der Konstruktor, der von CreateFileBasedResourceManager verwendet wird, privat ist, und es ist unmöglich, das Flag "benutze Dateien statt Assemblys" zu setzen.
Gibt es eine Möglichkeit, dies zu umgehen, ohne die gesamte InternalGetResourceSet-Methode neu implementieren zu müssen?
Vielen Dank!
Haben Sie jemals diese sortiert werden? Sie könnten die Reflektion innerhalb der App verwenden, um das Problem der "privaten Flagge" zu umgehen. – jcolebrand
Ich habe den Reflektor verwendet, um einfach die Implementierung des Ressourcenmanagers zu kopieren und zu modifizieren, was auch immer ich brauchte. Nicht sehr elegant, aber es hat funktioniert. –