2009-07-10 6 views

Antwort

20

Antwort: Ja, wie folgende Pseudo:

Resources.<The name of the resources file name>.<your resource key>; 

Beispiel:

lblTitle.Text = Resources.MySettings.WebsiteTitle; 

Resources ist ein visuell-Studio Autonamespace generiert, die alle in dem Projekt die globalen Ressourcenklassen und Requisiten aussetzt .

+0

Hallo, Kann ich (string) this.GetGlobalResourceObject ("Ressourcen", "col_description") als wie unten in Beschriftung oder Schaltfläche Text Singh

1

Wenn Sie auf der Website sind, haben Sie Zugriff auf Httpcontext und verwenden können:

HttpContext.GetGlobalResourceObject("myResourceKey") 
+0

Ich denke, Resources ist besser, da es stark typisiert ist, anstatt dieser Objektfunktion. danke trotzdem – Shimmy

+0

Auch keine Notwendigkeit, hartcodierte Zeichenfolgen zu verwenden. – Shimmy

+0

Wie kann man hartcodierte Strings vermeiden? – MrFox

14

Sie

HttpContext.GetGlobalResourceObject("myResourceKey") 

verwenden sollten ... denn auf diese Weise wird es noch funktionieren, wenn eine benutzerdefinierte Verwendung ResourceProvider. Der Standardtypgenerator für Ressourcendateien verwendet ausdrücklich den Resx-Provider und funktioniert nicht, wenn Sie so etwas wie eine database provider implementieren.

+0

Ich dachte, dass HttpContext.Current funktioniert, aber keine –

+0

Ich bevorzuge "httpcontext" anstelle der Visual Studio generierten Namespace, weil ich einen Kulturparameter übergeben und wählen Sie die Sprache zurückgeben kann. Mit der "direkten" Namespace-Funktion bekomme ich immer Englisch, ich muss die aktuelle Thread-Kultur vor dem Aufruf ändern, wenn ich die gute Kultur möchte. – foxontherock

+0

Hallo, Kann ich verwenden (String) this.GetGlobalResourceObject ("Ressourcen", "COL_Description") wie unten in Label oder Schaltfläche Text Singh

-3

Ich habe irgendwie das von der Ressource Designer,

ResourceManager temp = 
    new ResourceManager("Resources.<<resource name>>", 
    System.Reflection.Assembly.Load("App_GlobalResources")); 
+2

Der Code im Designer wird zum Initiieren des statischen Members verwendet, sodass die Ressourcenassembly einmal pro Instanz geladen wird. Anschließend greift der Benutzer auf die von MSFT zur Verfügung gestellten Tools zu das initiierte Mitglied. Wenn Sie Ihre Zeile verwenden, wird die Ressource immer wieder von der Assembly abgerufen, was vermieden werden sollte. Jedenfalls lädt die Zeile, die Sie gepostet haben, den ResourceManager und erhält nicht die gewünschte Eigenschaft, die das OP haben möchte. – Shimmy

1

Auf einigen Farmen Sie den Anruf zu

HttpContext.GetGlobalResourceObject("myResourceKey") 

in einem try/catch-Block wickeln müssen sie über das bekommen "Es konnten keine Ressourcen gefunden werden, die für die angegebene Kultur oder die neutrale Kultur geeignet sind".

+0

Hey, das funktioniert in Ordnung, ich benutze den folgenden Code: 'var resource = HttpContext.GetGlobalResourceObject (" ResourceBaseName "," ResourceKey "); Zeichenfolge Nachricht = Ressource! = Null? resource.ToString(): string.Empty; ' – DanielV