-
阅读目录
一:C#中泛型在方法Method上的实现
把Persion类型序列化为XML格式的字符串,把Book类型序列化为XML格式的字符串,但是只写一份代码,而不是public static string GetSerializeredString(Book book)这个方法写一份,再public static string GetSerializeredString(Persion persion)再写一份方法,而是在方法的调用时候再给他传数据类型的类型
1 using System;
2 using System.Collections.Generic;
3 using System.IO;
4 using System.Linq;
5 using System.Text;
6 using System.Threading.Tasks;
7 using System.Xml.Serialization;
8
9 namespace GenericMethod2
10 {
11 class Program
12 {
13 static void Main(string[] args)
14 {
15 Book book = new Book();
16 book.BookNumber = "001";
17 book.Name = "《西游记》";
18
19 Person person = new Person();
20 person.PersonName = "张三";
21
22 string bookXMLString = GetSerializeredString<Book>(book);
23
24 string personXMLString = GetSerializeredString<Person>(person);
25
26 Console.WriteLine(bookXMLString);
27
28 Console.WriteLine("--------------");
29
30 Console.WriteLine(personXMLString);
31 Console.ReadLine();
32 }
33
34 /// <summary>
35 /// 根据对象和泛型得到序列化后的字符串
36 /// </summary>
37 /// <typeparam name="T"></typeparam>
38 /// <param name="t"></param>
39 /// <returns></returns>
40 public static string GetSerializeredString<T>(T t)
41 {
42 //1.step 序列化为字符串
43 XmlSerializer xmlserializer = new XmlSerializer(typeof(T));
44 MemoryStream ms = new MemoryStream();
45 xmlserializer.Serialize(ms, t);
46 string xmlString = Encoding.UTF8.GetString(ms.ToArray());
47
48 return xmlString;
49 }
50
51 }
52
53 [Serializable()]
54 [XmlRoot]
55 public class Book
56 {
57 string _booknumber = "";
58 [XmlElement]
59 public string BookNumber
60 {
61 get { return _booknumber; }
62 set { _booknumber = value; }
63 }
64
65 string _name = "";
66 [XmlElement]
67 public string Name
68 {
69 get { return _name; }
70 set { _name = value; }
71 }
72 }
73
74 [Serializable()]
75 [XmlRoot]
76 public class Person
77 {
78 string _personName = "";
79 [XmlElement]
80 public string PersonName
81 {
82 get { return _personName; }
83 set { _personName = value; }
84 }
85 }
86
87 }