.net 本地化XDocument.Validate()中的验证消息

.net 本地化XDocument.Validate()中的验证消息,.net,validation,localization,xsd,linq-to-xml,.net,Validation,Localization,Xsd,Linq To Xml,如何本地化从XDocument.Validate()返回的消息?它似乎为我返回了英文邮件 下面的代码段编写了消息“未声明'UndeclaredElement'元素”。但这对非英语用户没有帮助 [Test] public void Test() { var xDocument = XDocument.Parse("<UndeclaredElement/>"); var stringReader = new StringReader("<xsd:s

如何本地化从XDocument.Validate()返回的消息?它似乎为我返回了英文邮件

下面的代码段编写了消息“未声明'UndeclaredElement'元素”。但这对非英语用户没有帮助

[Test]
public void Test()
{
    var xDocument = XDocument.Parse("<UndeclaredElement/>");

    var stringReader =
        new StringReader("<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'/>");

    var xmlSchema = XmlSchema.Read(XmlReader.Create(stringReader), (o, e) => Console.WriteLine(e.Message));

    var schemaSet = new XmlSchemaSet();
    schemaSet.Add(xmlSchema);

    xDocument.Validate(schemaSet, (o, e) =>
    {
        Console.Out.WriteLine(e.Message);
    });
}
[测试]
公开无效测试()
{
var xDocument=xDocument.Parse(“”);
字符串阅读器=
新StringReader(“”);
var xmlSchema=xmlSchema.Read(XmlReader.Create(stringReader),(o,e)=>Console.WriteLine(e.Message));
var schemaSet=new XmlSchemaSet();
schemaSet.Add(xmlSchema);
xDocument.Validate(schemaSet,(o,e)=>
{
控制台输出写入线(e.Message);
});
}

要本地化XDocument.Validate()中的消息,必须做两件事:

  • 将当前区域性设置为所需的语言:

    System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fr-fr");
    System.Threading.Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-fr");
    
  • 安装.net framework语言包(在我的示例中,版本4的语言包是)


  • 感谢John提供的快速指针..

    您当前的区域性设置为什么?System.Threading.Thread.CurrentThread.CurrentCulture显示它是在en UST下运行的,这可能是邮件使用英语的原因。。。