作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在使用 ObjectContent
构建 XML 请求,如下所示:
private HttpRequestMessage CreateRequest<T>(T content, HttpMethod method) where T : class
{
// create http message request
var request = CreateRequest(method);
// set contents of the HTTP message
var xmlFormatter = new XmlMediaTypeFormatter
{
Indent = true,
UseXmlSerializer = true
};
var objectContent = new ObjectContent<T>(content, xmlFormatter);
request.Content = objectContent;
// return HttpRequestMessage
return request;
}
这很好用!但是,输出不包括 XML 序言,例如
<?xml version="1.0" encoding="UTF-8"?>
我如何鼓励 XmlSerializer
包含该行?
最佳答案
我不知道如何用 ObjectContent
做到这一点,所以我先将它序列化,然后通过 StreamContent
将它传递给请求:
private HttpRequestMessage CreateRequest<T>(T content, HttpMethod method) where T : class
{
var request = CreateRequest(method);
var encoding = Encoding.UTF8;
var xmlWriterSettings = new XmlWriterSettings { Indent = true, Encoding = encoding };
// StringWriterWithEncoding courtesy of http://stackoverflow.com/a/9459212/29
using (var stringWriter = new StringWriterWithEncoding(encoding))
using (var xmlWriter = XmlWriter.Create(stringWriter, xmlWriterSettings))
{
var xmlSerializer = new XmlSerializer(typeof(T));
xmlSerializer.Serialize(xmlWriter, content);
request.Content = new StringContent(stringWriter.ToString(), encoding);
}
return request;
}
关于c# - 如何在我的请求 XML 中包含前导码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18127711/
我是一名优秀的程序员,十分优秀!