【问题标题】:C# Output XML from Linq to Response.OutputStreamC# 将 XML 从 Linq 输出到 Response.OutputStream
【发布时间】:2010-01-07 20:43:45
【问题描述】:

有没有更简单的方法将 Linq to SQL 表输出到 XML(最终输出到网页?)不幸的是,我没有使用 MVC,但我可以在我的 aspx C# 页面中引用它。

我有这个:

var myView = (from x in db.myTable 
              where x.Name.Contains("Bob") 
              select new person {Name = x.Name, Job = x.Job).Take(100);

并且想要输出类似的东西(现在不必精确):

<?xml version="1.0" encoding="utf-8"?> 
<myView xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <person><Name>Bob Smith</Name><Job>Machinist</Job></person>
    <person><Name>Bob Smithers</Name><Job>Cartoonist</Job></person>
    <person><Name>Rebob Wilson</Name><Job>Mason</Job></person>
</myView> 

我试过这样做:

TextWriter myTW = new StreamWriter( Response.OutputStream, Encoding.UTF8);
XmlTextWriter xmlTW = new XmlTextWriter(myTW);
XmlSerializer myS = new XmlSerializer( typeof( person));
myS.Serialize( xmlTW, myView);

但我收到“无法序列化 iQueryable”。但是,我尝试了 ToArray、ToList、AsEnumerable 等,只是用 myS.Serialize() 得到“发生错误”。

有什么想法吗?希望有类似 return XML(myView);

【问题讨论】:

    标签: c# xml-serialization asp.net


    【解决方案1】:

    试试这个:

    var result = myView.ToArray();
    var serializer = new XmlSerializer(result.GetType());
    serializer.Serialize(Response.OutputStream, result);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多