如何使用.NETWeb服务创建自定义xml标记?

如何使用.NETWeb服务创建自定义xml标记?,xml,web-services,linq-to-sql,Xml,Web Services,Linq To Sql,我正在为数据库使用LINQ到SQL 我将从我的web服务返回xml内容,如下所示: 守则: DataClassesDataContext dc = new DataClassesDataContext(); [WebMethod] public List<Books> getBooks() { return dc.Books.ToList(); } DataClassesDataContext dc=newdataclassesdat

我正在为数据库使用LINQ到SQL

我将从我的web服务返回xml内容,如下所示:
守则:

DataClassesDataContext dc = new DataClassesDataContext();
[WebMethod]
    public List<Books> getBooks()
    {
        return dc.Books.ToList();    
    }
DataClassesDataContext dc=newdataclassesdatacontext();
[网络方法]
公共列表getBooks()
{
返回dc.Books.ToList();
}
输出:

<ArrayOfBook>
−
<Book>
<bookID>1</bookID>
<title>Programming with Java</title>
<author>Balagurusami</author>
<summary>Summary1</summary>
</Book>
−
<Book>
<bookID>2</bookID>
<title>Programming with C</title>
<author>M.M.Patel</author>
<summary>Summary2</summary>
</Book>
−
<Book>
<bookID>3</bookID>
<title>ASP in 21 Days</title>
<author>K.J. Malai</author>
<summary>Summary3</summary>
</Book>
−
<Book>
<bookID>4</bookID>
<title>Book Title</title>
<author>autho1</author>
<summary>summary4</summary>
</Book>
</ArrayOfBook>

−
1.
用Java编程
巴拉古鲁萨米
总结1
−
2.
用C语言编程
帕特尔先生
总结2
−
3.
21天内完成ASP
马莱
总结3
−
4.
书名
作者1
总结4
问题:


如何在输出中放置自定义属性和节点?

是供人使用的XML吗?这是开发人员陷入墨守成规的领域之一——他们对XML“应该”是什么样子有着这样的看法,为了让它看起来像他们想要的那样,他们花费了无数的时间来处理属性和IXmlSerializable。在浪费了这么多时间之后,他们悲哀地意识到,他们的应用程序运行与让该死的框架按照XmlSerializer希望的方式序列化类时没有什么不同

忠告:不要这样做。走开。做你真正需要做的事情

等等,你还在看这个?哦,好吧,我想你得想办法学

两个选项:实现IXmlSerializable或在属性上使用属性。我强烈建议你选择方案二。使用该接口,您必须自己构造和解析xml,这比听起来要困难。甚至在LINQtoXML类(XElement)出现的情况下也是如此。我以前也这样做过,它占用了我一周的时间来处理这个或那个琐碎的问题

或等属性是指示xml序列化程序如何生成类的xml的最快路径。在某些情况下(如集合属性),您会发现很难按照您希望的方式使用属性来处理xml(傻笑)

因此,属性无疑是更好的选择不幸的是,您正在将linq序列化为sql实体——生成的代码。您可以编辑生成的代码以添加属性,但现在,无论何时需要重新生成,您都会陷入困境。您是否开始觉得不必太担心xml的外观

因此,在您的情况下,您别无选择,只能添加和实现xml,您可以通过多种不同的方式构造xml(使用2.0类、linq到xml类,或者使用异常的StringBuilder)。我建议把注意力集中在 linq转换为xml类。如果你真的想这样虐待自己