相关疑难解决方法(0)

没有<?xml>文本声明的.NET XML序列化

我正在尝试生成这样的XML:

<?xml version="1.0"?>
<!DOCTYPE APIRequest SYSTEM
"https://url">
<APIRequest>
  <Head>
      <Key>123</Key>
  </Head>
  <ObjectClass>
    <Field>Value</Field
  </ObjectClass>
</APIRequest>
Run Code Online (Sandbox Code Playgroud)

我有一个用XMLSerialization属性装饰的类(ObjectClass),如下所示:

[XmlRoot("ObjectClass")]
public class ObjectClass
{
    [XmlElement("Field")]
    public string Field { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

而我真正的hacky直觉思想让我的工作就是在序列化时这样做:

ObjectClass inst = new ObjectClass();
XmlSerializer serializer = new XmlSerializer(inst.GetType(), "");

StringWriter w = new StringWriter();
w.WriteLine(@"<?xml version=""1.0""?>");
w.WriteLine("<!DOCTYPE APIRequest SYSTEM");
w.WriteLine(@"""https://url"">");
w.WriteLine("<APIRequest>");
w.WriteLine("<Head>");
w.WriteLine(@"<Field>Value</Field>");
w.WriteLine(@"</Head>");

XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("", ""); 
serializer.Serialize(w, inst, ns);

w.WriteLine("</APIRequest>");
Run Code Online (Sandbox Code Playgroud)

但是,这会生成如下XML:

<?xml version="1.0"?>
<!DOCTYPE APIRequest SYSTEM
"https://url">
<APIRequest>
  <Head>
      <Key>123</Key>
  </Head>
  <?xml …
Run Code Online (Sandbox Code Playgroud)

.net xml-serialization .net-2.0

20
推荐指数
2
解决办法
3万
查看次数

标签 统计

.net ×1

.net-2.0 ×1

xml-serialization ×1