Gibt es eine Möglichkeit stark typisierte Ressource-Dateien öffentlich zu machen (im Gegensatz zu internem Gegensatz)?

StackOverflow https://stackoverflow.com/questions/140937

Frage

Hier ist, was ich tun möchte:

Ich möchte ein Bibliotheksprojekt erstellen, die meine Ressource-Dateien enthält (dh UI Labels und so weiter). Ich möchte dann die Ressourcen-Bibliothek verwenden, um sowohl in meinem UI und in meinen Tests. (Dh, hat grundsätzlich einen gemeinsamen Ort für meine Ressourcen, die ich aus mehreren Projekten verweisen.)

Leider, denn die StronglyTypedResourceBuilder (die .NET-Klasse, die den Code für Ressourcen generiert) macht Ressource standardmäßig interne Dateien, kann ich meine stark typisierte Ressourcen in der Bibliothek aus einem anderen Projekt nicht verweisen (dh meiner UI oder Tests) , ohne durch Reifen zu springen (dh etwas ähnliches, was hier oder eine öffentliche Wrapper-Klasse / Funktion zu schreiben).

Leider werden diese beiden Lösungen entfernen meine Fähigkeit, die Verweise zu halten stark typisierte.

Hat jemand eine geradlinige Art und Weise zu erstellen stark typisierte .NET-Ressourcen gefunden, die aus mehreren Projekten referenziert werden können?

Ich würde es vorziehen, um zu vermeiden, ein Build-Ereignis zu verwenden, um diese (dh zu erreichen, wie alle Instanzen von ‚internen‘ ersetzen, etwas zu tun mit ‚öffentlich‘, aber das ist im Grunde Plan meines Fall-Back, wenn ich kann ‚t eine Antwort finden ..

War es hilfreich?

Lösung

Nicht sicher, welche Version von Visual Studio Sie verwenden, so werde ich Schritte setzen für eines:

VS 2008 - Wenn Sie die resx Datei in der Entwurfsansicht zu öffnen, gibt es eine Option an der Spitze neben Ressource hinzufügen und entfernen Resource Access-Modifier genannt, es ist ein Drop-Down, wo Sie den generierten Code von intern auf öffentliches ändern .

VS 2005 - Sie haben nicht die Möglichkeit haben, den Code zu generieren, wie in VS 2008. Es ist ein Merkmal war, das hinzugefügt wurde, weil diese Kopfschmerzen. Es gibt Arbeit allerdings um ist. Sie könnten einen Dritten Generator wie dieses Tool oder Sie könnten die InternalsVisibleTo Attribut in Ihrem Assembly verwenden CS- die Projekte hinzuzufügen, die Zugriff auf die internen Klassen Ihrer Ressourcen-Bibliothek haben.

Andere Tipps

Visual Studio 2008 ermöglicht es Ihnen, ob die erzeugte Ressourcenklasse wählen sollten interne oder öffentlich. Es gibt auch die ResXFileCodeGeneratorEx , die 2005, dass für Visual Studio tun sollten

Aus dem Datensatz Designer und mit dem Eigenschaftenfenster sichtbar ist, gibt es eine „Modifier“ Eigenschaft. Für Ihre Datensätze, sagt es wahrscheinlich intern.

Ich weiß nicht, ob es eine Einstellung ist, alle neuen Datensätze öffentlich auf Standard.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top