سؤال

لدي تطبيق أقوم بتنفيذ الترجمة عليه.

أحتاج الآن إلى الإشارة ديناميكيًا إلى اسم في ملف الموارد.

افترض أن لدي ملف مورد يسمى Login.resx، وعدد من السلاسل:فو = "مرحبا"، شريط = "قاسية" وباز = "العالم"

عادة، سأشير إلى:نتيجة السلسلة =Login.foo;والنتيجة==مرحبا";

مشكلتي هي أنني في وقت البرمجة، لا أعرف ما إذا كنت أريد الإشارة إلى foo أو bar أو baz - لدي سلسلة تحتوي إما على "foo" أو "bar" أو "baz".

أحتاج إلى شيء مثل:

تسجيل الدخول["فو"];

هل يعرف أحد ما إذا كانت هناك أي طريقة للإشارة ديناميكيًا إلى سلسلة في ملف مورد؟

هل كانت مفيدة؟

المحلول

ستحتاج إلى مثال أ ResourceManager ل Login.resx:

var resman = new System.Resources.ResourceManager(
    "RootNamespace.Login",
    System.Reflection.Assembly.GetExecutingAssembly()
)
var text = resman.GetString("resname");

قد يكون من المفيد إلقاء نظرة على التعليمات البرمجية التي تم إنشاؤها في ملفات التعليمات البرمجية الخلفية لملفات الموارد التي تم إنشاؤها بواسطة IDE.تحتوي هذه الملفات بشكل أساسي على خصائص للقراءة فقط لكل مورد يقوم بإجراء استعلام لمدير الموارد الداخلي.

نصائح أخرى

إذا قمت بوضع ملف المورد الخاص بك في مجلد App_GlobalResources كما فعلت، فستحتاج إلى استخدام

Global :: System.Resources.ResourCemanager Temp = New Global :: System.Resources.ResourCemanager ("RootNamespace.login" ، Global :: System.Reflection.assembly.load ("App_GlobalResources")) ؛

استغرق الأمر مني بعض الوقت لمعرفة ذلك.امل ان يساعد هذا احد.:)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top