我做了一个测试
XmlSerializer ser = new XmlSerializer(typeof(decimal));
StringBuilder builder = new StringBuilder();
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
var row = XElement.Parse(@"<decimal>321,64</decimal>");
using (var xmlReader = row.CreateReader())
{
var result = (decimal)ser.Deserialize(xmlReader);
}
不幸的是,这会引发异常,但第二个示例返回 32164(顺便说一句。这是好的结果吗?)
XmlSerializer ser = new XmlSerializer(typeof(string));
StringBuilder builder = new StringBuilder();
var row = XElement.Parse(@"<string>321,64</string>");
using (var xmlReader = row.CreateReader())
{
var result = (string)ser.Deserialize(xmlReader);
decimal s = Convert.ToDecimal(result,CultureInfo.InvariantCulture);
}