首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从属性中获取ProtoBuf.Meta.MetaType类型it is mede?

如何从属性中获取ProtoBuf.Meta.MetaType类型it is mede?
EN

Stack Overflow用户
提问于 2013-07-10 17:49:59
回答 1查看 440关注 0票数 1

如何从属性(例如ProtoIncludeAttribute)中获取ProtoBuf.Meta.MetaType Type it is mede?

例如,我们从以下位置创建了一个程序集:

代码语言:javascript
复制
[ProtoContract]
[ProtoInclude(TypeCode.MyClassChildCode, typeof(MyClassChild))]
public class MyClass {}

[ProtoContract]
public class MyClassChild: MyClass{}

我们为我们的MyClassChild提供了ProtoBuf.Meta.MetaType。我们想从中得到TypeCode.MyClassChildCode。这样的事情怎么做?

EN

回答 1

Stack Overflow用户

发布于 2013-07-10 18:09:06

我不完全确定我是否理解了这个问题,但听起来你也是在问:

  • 我能知道一个属性是不是从属性中生成的,而不是通过MetaType
  • ,或者:我能得到

使用的实际属性吗?

如果这就是问题所在,那么:MetaType不会显式跟踪这一点。属性中的信息用于配置MetaType,然后将其丢弃。例如,通过属性部分配置一个类型,然后通过代码应用一些调整(对于只有在运行时才知道的部分),这并不少见。不过,所有配置都可以在MetaType上使用。您提到了ProtoIncludeAttribute,这是子类型数据:一旦构造了MetaType,就可以通过.GetSubtypes()获得它。同样,还有.GetFields()和一系列用于类型级别配置选项(UseConstructor等)的属性。

有一些东西目前可能很难查询-代理和工厂跳到脑海中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17567508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档