【发布时间】:2022-01-20 08:46:11
【问题描述】:
我正在尝试序列化具有双值类型属性但输出 xml 的参数值为“-0”的对象。 我正在使用 .Net 框架 3.5。
示例代码:
[Serializable]
[XmlType(AnonymousType = true)]
[XmlRoot(Namespace = "", IsNullable = false)]
Public class Data
{
[XmlElement(Form = XmlSchemaForm.Unqualified)]
public double Lateral { get; set;}
}
public class Test
{
Public static void Main()
{
Test t=new Test();
Data data=new Data();
data.Lateral=0;
string xml = t.ToXml(data);
Console.WriteLine(xml);
}
Public string ToXml(Data data)
{
using (StringWriter stringWriter = new StringWriter())
{
XmlSerializer xmlSerializer = new XmlSerializer(typeof(Data));
xmlSerializer.Serialize(stringWriter, data);
return stringWriter.ToString();
}
}
}
}
Output xml:
<?xml version="1.0" encoding="utf-16"?>
<Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Lateral>-0</Lateral>
</Data>
【问题讨论】:
-
你测试过更新的框架吗?
-
@Jimi 我已经尝试过最近的框架,价值没有负号。
-
我们的应用程序限制升级到最新的框架。于是在.net3.5框架中寻找解决方案。
-
您真的需要序列化为 XML,或者 JSON 可以吗? Json.Net 没有针对 .Net Framework 3.5 的依赖项。
-
如果数据驻留在 SQL Server 数据库中,您可以轻松地在数据库层创建 XML。
标签: c# xml .net-3.5 xmlserializer