2010-05-07 178 views
3

我有这种情况...什么是IDynamicMetaObjectProvider最简单的实现?

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

2.-我的动态行/记录类是从.NET DLR DynamicObject类继承而来的,底层存储是一个与定义字段适当关联的List。一切正常!但...

3.-因为我需要对内容进行序列化,并且DynamicObject不是可序列化的,所以当需要动态成员访问时,我不得不生成并携带动态对象。但这是丑陋的和多余的。

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

谷歌搜索/结果失败后,我要求你的帮助... 任何人都可以请一个很好的例子(或相关链接)做到这一点?

回答

1

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

实现IDynamicMetaObjectProvider所花费的时间较少。

2

听起来像你正在重新发明ExpandoObject class。考虑一下你的实现的集合。

+0

否。由于未设置集中式字段定义,所以对于孤立对象,ExpandoObject更好。另外,它不是可串行化的。 – 2010-05-07 14:42:45

相关问题