ASP.NET Resourcemanager для чтения локальных .resx - PullRequest
2 голосов
/ 04 августа 2010

В своих переводах я использую встроенные файлы .resx.Некоторые из этих переводов я хочу переопределить другим файлом .resx, который не внедрен (напр. ~ / App_Localresources / translations.en-US.resx).

Цель этого состоит в том, чтобы после компиляции и развертывания приложения пользователь мог вручную изменить файл .resx, чтобы переопределить некоторые из встроенных переводов.

Есть ли способ использоватьнормальный ResourceManager для этого?(в .NET 4)

Спасибо за советы

1 Ответ

3 голосов
/ 04 августа 2010
    public class ResxResourceManager : System.Resources.ResourceManager {
        public ResxResourceManager(string baseName, string resourceDir) {
            Type[] paramTypes = new Type[] { typeof(string), typeof(string), typeof(Type) };
            object[] paramValues = new object[] { baseName, resourceDir, typeof(ResXResourceSet) }; 

            Type baseType = GetType().BaseType;

            ConstructorInfo ci = baseType.GetConstructor(
                BindingFlags.Instance | BindingFlags.NonPublic,
                null, paramTypes, null);

            ci.Invoke(this, paramValues);
        }

    protected override string GetResourceFileName(CultureInfo culture) {
        string resourceFileName = base.GetResourceFileName(culture);
        return resourceFileName.Replace(".resources", ".resx");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...