1
我用從IList<string>
繼承了我的Family
類數據結構如下:無法序列財產
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
。