unity3d,序列化将数据类的内容生成为XML配置

1.对象类

public class TestXml
{
public List<VersionAsset> list = new List<VersionAsset>();
}
public class VersionAsset
{
public string assetName = "";
public string md5Value = "";
public int assetSize = 0;
public ActionType actionType = ActionType.NONE;
public enum ActionType
{
NONE,
ADD,
DELETE,
UPDATE,
}
}

2.生成XML

public void CreateXml()
{
TestXml testXml = new TestXml();
for(int i=0;i<5;i++)
{
VersionAsset temp = new VersionAsset();
temp.assetName = "assetName"+i;
temp.md5Value = "md5Value"+i;
temp.assetSize = i;
testXml.list.Add(temp);
}
string path = Application.dataPath + "/testXml.xml";
System.Xml.Serialization.XmlSerializer xml = new System.Xml.Serialization.XmlSerializer(typeof(TestXml));
string fileDir = System.IO.Path.GetDirectoryName(path);
if (!System.IO.Directory.Exists(fileDir))
{
System.IO.Directory.CreateDirectory(fileDir);
}
System.IO.StreamWriter writer = new System.IO.StreamWriter(path);
xml.Serialize(writer,testXml);
writer.Close();
}

3.结果。

1)在工程目录下找到testXml.xml的文件

2)内容

<?xml version="1.0" encoding="utf-8"?>
<TestXml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <list>
    <VersionAsset>
      <assetName>assetName0</assetName>
      <md5Value>md5Value0</md5Value>
      <assetSize>0</assetSize>
      <actionType>NONE</actionType>
    </VersionAsset>
    <VersionAsset>
      <assetName>assetName1</assetName>
      <md5Value>md5Value1</md5Value>
      <assetSize>1</assetSize>
      <actionType>NONE</actionType>
    </VersionAsset>
    <VersionAsset>
      <assetName>assetName2</assetName>
      <md5Value>md5Value2</md5Value>
      <assetSize>2</assetSize>
      <actionType>NONE</actionType>
    </VersionAsset>
    <VersionAsset>
      <assetName>assetName3</assetName>
      <md5Value>md5Value3</md5Value>
      <assetSize>3</assetSize>
      <actionType>NONE</actionType>
    </VersionAsset>
    <VersionAsset>
      <assetName>assetName4</assetName>
      <md5Value>md5Value4</md5Value>
      <assetSize>4</assetSize>
      <actionType>NONE</actionType>
    </VersionAsset>
  </list>
</TestXml>

4.总结

主要用到类 System.Xml.Serialization.XmlSerializer、System.IO.StreamWriter 

用到构造器System.Xml.Serialization.XmlSerializer(Type)、用到方法Serialize(Writer,Object)

注意:只有对象类中的public修饰的变量才会生成到XML中(包括继承自父类的public修饰的变量)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值