【问题标题】:What is the most simple implementation of IDynamicMetaObjectProvider?IDynamicMetaObjectProvider 最简单的实现是什么?
【发布时间】:2011-02-16 20:20:04
【问题描述】:

我有这种情况...

1.- 我提供了一个“动态表”供用户定义字段。每个动态表将根据需要有尽可能多的行/记录,但字段定义是集中的。

2.- 我的 Dynamic Row/Record 类继承自 .NET DLR DynamicObject 类,底层存储是一个与定义字段适当关联的列表。一切正常!但是...

3.- 因为我需要对内容进行序列化,而DynamicObject不是Serializable,所以在需要动态成员访问的时候,我不得不生成并携带一个Dynamic Object。但这是丑陋和多余的。

所以,我需要自己实现 IDynamicMetaObjectProvider 来实现动态访问和序列化。

在谷歌搜索/搜索失败后,我请求您的帮助... 任何人都可以举一个很好的例子(或相关链接)吗?

【问题讨论】:

    标签: .net serialization dynamic dynamic-language-runtime


    【解决方案1】:

    听起来你正在重新发明ExpandoObject class。请考虑为您的实现使用这些集合。

    【讨论】:

    • 没有。 ExpandoObject 更适合隔离对象,因为没有设置集中的字段定义。另外,它不可序列化。
    【解决方案2】:

    解决方案是实施自定义序列化。 实现 ISerializable 接口,以及反序列化构造函数。

    实现 IDynamicMetaObjectProvider 所需的时间更少。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-09
      • 1970-01-01
      • 2011-03-21
      • 2010-11-23
      • 1970-01-01
      • 2017-05-21
      • 2021-04-24
      相关资源
      最近更新 更多