将属性添加到R​​untimeTypeModel类型的字段

时间:2014-09-23 07:21:26

标签: c# protobuf-net

我正在为第三方库类构建非默认RuntimeTypeModel。但是,我需要将一些字段标记为引用,就像使用[ProtoMember(N), AsReference=true]一样。如何将这些属性应用于我的非默认RuntimeTypeModel中定义的类型的字段?

更新

我设法通过MetaType.GetFields()访问字段并分别在每个字段上设置AsReference标志,但我不知道这是否是正确的方式来做我想要的或者可能有更简单的方法来做到这一点(应该存在,imo)。

1 个答案:

答案 0 :(得分:1)

根据您的编辑说明,这些选项可通过MetaType获得,例如:

var metaType = model.Add(type, false);
model.AddField(1, "Foo").AsReference = true; // AddField returns the ValueMember;
                    // contrast to Add which returns the MetaType for fluent usage

还有:

metaType.AsReferenceDefault

表示(每种类型)是否应自动将类型视为参考。