我对Family
继承自的类使用以下数据结构IList<string>
:
public class Family : IList<string>
{
public string LastName { get; set; }
//IList<string> members
. .
.
//IList<string> members
}
我创建自己的RuntimeTypeModel
并将Family
类型添加到它,如下所示:
RuntimeTypeModel myModel = RuntimeTypeModel.Create();
MetaType familyMetaType = myModel.Add(typeof(Family), true);
familyMetaType.AddField(1, "LastName");
familyMetaType.AddField(2, "Item").IsPacked = true; ;
familyMetaType.CompileInPlace();
myModel.Compile();
然后我创建一个Family
对象并序列化它:
Family family = new Family();
family.LastName = "Sawan";
family.Add("Amer");
using (FileStream fs = new FileStream("Dump.proto", FileMode.Create))
myModel.Serialize(fs, family);
但是当我反序列化它时,我只得到string
集合的成员而不是LastName
值。
我应该设置什么配置RuntimeTypeModel
以使其序列化其他对象,如LastName
本例中的。