最近很喜歡使用XML(C#的Linq to XML)。寫個類後總想把它能用XML文件保存起來,一般我都是寫個ToXElement函數然後在裡面……
今天寫煩了,想寫一個通用的工具類,以便很方便地把一個類保存化為XML。
看看寫出來的結果:
那個靜態類Test是用於測試的,測試結果:
1 /************************************************************************
2 * 把一個對象格式化為XML(元素),即:
3 * 1、該XML元素的名字為該對象的類型
4 * 2、對該對象中每一個公共屬性(Property)轉換為字符串(String)
5 * 保存到XML元素的屬性中
6 * 把一個XML粘貼到一個對象中,即為上一過程的逆過程。
7 *
8 * 對象信息保存到XML中(然後再保存到文件)很顯然將具有很高的可讀性
9 ************************************************************************/
10 using System;
11 using System.Collections.Generic;
12 using System.Linq;
13 using System.Text;
14 using System.Xml.Linq;
15 namespace DotNetEx.FormatAsXml
16 {
17 /// <summary>
18 /// 標識能格式化為XML,可以被用在類和結構上,不可以繼承,不支持多重標記
19 /// </summary>
20 [AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct, Inherited = false,
21 AllowMultiple = false)]
22 public sealed class CanFormatToXmlAttribute : Attribute
23 {
24 public CanFormatToXmlAttribute () { }
25 }
26 /// <summary>
27 /// 標識該屬性不用被格式化
28 /// </summary>
29 [AttributeUsage(AttributeTargets.Property,Inherited=false,
30 AllowMultiple=false)]
31 public sealed class DonotFormatToXmlAttribute:Attribute