XmlHelper
可以用于项目中xml操作
csharp
XmlHelper.Deserializer<T>(str);//将xml字符串转成对象
XmlHelper.Serializer<T>(obj);//将对象序列化为xml字符串
以asp.net core项目为例,介绍XmlHelper
的用法:
- 添加xml序列化支持
csharp
builder.Services.AddControllers()
.AddXmlSerializerFormatters();
- 接口定义xml入参或出参
csharp
[Consumes("application/xml")] //入参是xml
[Produces("application/xml")] // 返回参数xml
- xml示例代码
csharp
//webapi接收xml格式的参数
[HttpPost("ticket")]
[Consumes("application/xml")]
public async Task<object> ComponentVierfiyTicket()
{
using (var reader=new StreamReader(Request.Body))
{
var body = await reader.ReadToEndAsync();
var xmlObj=XmlHelper.Deserializer<ComponentTicket>(body, "xml");//将xml字符串转成对象,示例中根节点是xml
}
return "success";
}
//webapi 响应xml格式的数据
[HttpPost("ticket")]
[Produces("application/xml")]
public async Task<object> XmlResponse()
{
ComponentTicket ticket = new ComponentTicket();
string t = XmlHelper.Serializer<ComponentTicket>(ticket);//将对象序列化为xml字符串
return t;
}
xml实体类
csharp
[XmlRoot]
public class ComponentTicket
{
[XmlElement("AppId")]
public string AppId { get; set; }
[XmlElement( "CreateTime")]
public long CreateTime { get; set; }
[XmlElement( "InfoType")]
public string InfoType { get; set; }
[XmlElement( "ComponentVerifyTicket")]
public string ComponentVerifyTicket { get; set; }
}
xml字符串
xml
<xml>
<AppId>some_appid</AppId>
<CreateTime>1413192605</CreateTime>
<InfoType>component_verify_ticket</InfoType>
<ComponentVerifyTicket>some_verify_ticket</ComponentVerifyTicket>
</xml>