【发布时间】:2016-02-16 03:37:20
【问题描述】:
一个简单的结构:
public struct TestA
{
public object value;
}
创建它并序列化它:
List<string> value = new List<string>();
value.Add("a1");
TestA a = new TestA();
a.value = value;
MemoryStream stream = new MemoryStream();
XmlSerializer xml = new XmlSerializer(a.GetType());
xml.Serialize(stream, a);
无法序列化,InvalidOperationException:参数对象'System.Collections.Generic.List'的类型不是原始的。
如果我把"public object value;"改成"public List<string> value;",就可以序列化了。
我想用这个object value来存储不同类型的值,所以我把类型设为object。
如:
a.value = new List<int>();
a.value = 3;
a.value = "a string";
【问题讨论】:
-
我能想到的唯一方法就是使用自定义xml序列化:msdn.microsoft.com/en-us/library/ty01x675(v=vs.110).aspx
标签: c# serialization unity3d