WCF返回匿名类型(抛弃datatable复杂类型,采用xml格式)
前几天在遇到WCF返回匿名类型时,采用了datatable返回值,虽将nullable类型处理掉,发现在调用端生成很多实际用不上的XML。
突然才想起为什么不返回string或XML格式数据呢,如此就能在服务端很好的控制格式。
如下代码:
View Code
///<summary>
/// 转为XML类型
///</summary>
///<typeparam name="T">泛型参数</typeparam>
///<param name="array">IEnumerable</param>
///<param name="elementlistName">节点名称</param>
///<returns></returns>
public static XElement ConvertToXML<T>(this IEnumerable<T> array, string elementlistName)
{
try
{
XElement root = new XElement("root");
foreach (T item in array)
{
XElement element = new XElement(elementlistName);
foreach (PropertyDescriptor dp in TypeDescriptor.GetProperties(typeof(T)))
{
XElement node = new XElement(dp.Name, dp.GetValue(item) != null ? dp.GetValue(item).ToString() : "");
element.Add(node);
}
root.Add(element);
}
return root;
}
catch (Exception ex)
{
throw ex;
}
}
如需分页等其他操作,可以在XML根节点添加属性即可;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步