本地化mscorlib.dll资源

时间:2013-05-07 10:23:02

标签: c# silverlight localization mscorlib

我在ILSpy中打开了mscorlib,我在资源文件夹中看到了:

Name, Value
[Format_InvalidString, Input string was not in a correct format.]

有没有办法本地化这个字符串?

(上下文:每当输入错误的数字时,silverlight应用程序都会抛出此消息,并且更改此操作比编写转换器并将其应用于数百个地方要容易得多。

2 个答案:

答案 0 :(得分:0)

Silverlight使用附属程序集进行本地化。您可以在Silverlight安装位置查看这些内容。在我的机器上,我已经在C:\ Program Files(x86)\ Microsoft Silverlight \ 5.1.20125.0中安装了Silverlight 5.如果需要,请调整版本号。

请注意许多具有2个字母名称的子目录,“ar”是阿拉伯语的子目录。查看该目录,请注意那里的mscorlib.resources.dll文件。这是包含本地化字符串的附属程序集,包括异常消息字符串。该特定目录中的阿拉伯字符串。

并将自动显示在用户选择阿拉伯语作为首选语言的计算机上。你没必要帮忙。

答案 1 :(得分:0)

唯一有效的解决方案是:

public partial class MyEntity        
{
    public string MyField_string
    {
        get
        {
            return MyField.ToString();
        }
        set
        { 
            decimal res = 0;
            var b = Decimal.TryParse(value, out res);
            if (!b)
                throw new ArgumentException("Localized message");
            else
                this.MyField = Math.Round(res, 2);
        }
    }

    partial void OnMyFieldChanged()
    {
        RaisePropertyChanged("MyField_string");
    }
}

然后绑定到MyField_string而不是MyField