【发布时间】:2018-12-22 07:21:42
【问题描述】:
我想生成以下 XML 请求。当我使用 XML 到 C# 工具为此请求生成类然后序列化以调用 web 服务时,我生成的请求在根目录中没有 p:,因此我的请求失败。有人可以帮忙吗?
<?xml version="1.0" encoding="utf-8"?>
<p:DCTRequest xmlns:p="http://www.dhl.com" xmlns:p1="http://www.dhl.com/datatypes" xmlns:p2="http://www.dhl.com/DCTRequestdatatypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.dhl.com DCT-req.xsd ">
<GetQuote>
<Request>
<ServiceHeader>
<MessageTime>2002-08-20T11:28:56.000-08:00</MessageTime>
<MessageReference>1234567890123456789012345678901</MessageReference>
<SiteID>DDDDD</SiteID>
<Password>XXXX</Password>
</ServiceHeader>
</Request>
</GetQuote>
</p:DCTRequest>
这是我序列化类的代码:
public static string Serialize(object dataToSerialize)
{
if (dataToSerialize == null) return null;
using (Utf8StringWriter stringwriter = new Utf8StringWriter())
{
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("p", "DCTRequest");
var serializer = new XmlSerializer(dataToSerialize.GetType());
serializer.Serialize(stringwriter, dataToSerialize);
return stringwriter.ToString();
}
}
【问题讨论】:
-
展示如何进行序列化。
-
public static string Serialize(object dataToSerialize) { if (dataToSerialize == null) return null; using (Utf8StringWriter stringwriter = new Utf8StringWriter()) { //XmlSerializerNamespaces ns = new XmlSerializerNamespaces(); // ns.Add("p", "DCTRequest"); var serializer = new XmlSerializer(dataToSerialize.GetType()); serializer.Serialize(stringwriter, dataToSerialize);返回 stringwriter.ToString(); } } //我用这个函数进行序列化
-
Edit 问题。移动注释中的代码。
标签: c# xml serialization