将下面的脚本挂到任意物体
[C#]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
using
UnityEngine;
using
System.Collections.Generic;
using
System.IO;
using
System.Linq;
using
System.Xml.Serialization;
public
class
SerializeTest : MonoBehaviour
{
void
Start()
{
List<Information> serList =
new
List<Information>();
string
path =
@"Test.xml"
;
//赋值
for
(
int
i = 0; i < 5; i++)
{
serList.Add(
new
Information(
"名字"
+ i, 20 + i));
}
XMLSerialize(serList, path);
List<Information> serTest = XMLDeserialize<List<Information>>(path);
//输出返回的值
foreach
(var temp
in
serTest)
{
Debug.Log(temp.name);
Debug.Log(temp.age);
}
}
//序列化
void
XMLSerialize<T>(T obj,
string
path)
{
XmlSerializer xs =
new
XmlSerializer(
typeof
(T));
Stream fs =
new
FileStream(path, FileMode.Create, FileAccess.ReadWrite);
xs.Serialize(fs, obj);
fs.Flush();
fs.Close();
fs.Dispose();
}
//反序列化
T XMLDeserialize<T>(
string
path)
{
XmlSerializer xs =
new
XmlSerializer(
typeof
(T));
Stream fs =
new
FileStream(path, FileMode.Open, FileAccess.ReadWrite);
T serTest = (T)xs.Deserialize(fs);
fs.Flush();
fs.Close();
fs.Dispose();
return
serTest;
}
}
[XmlType(
"人员信息"
)]
public
class
Information
{
[XmlAttribute(
"名字"
)]
public
string
name;
[XmlAttribute(
"年龄"
)]
public
int
age;
public
Information(
string
name,
int
age)
{
this
.name = name;
this
.age = age;
}
//必须要有
public
Information(){ }
}
|