views:

250

answers:

2

Hi, I have this scenario...

1.- I'm providing a "Dynamic Table" for wich users can define Fields. Each Dynamic Table will have as many rows/records as needed, but the Field definitions are centralized.

2.- My Dynamic Row/Record class was inherited from the .NET DLR DynamicObject class, and the underlying storage was a List appropriately associated to the defining fields. Everything works fine! BUT...

3.- Because I need to Serialize the content, and DynamicObject is not Serializable, I was forced to generate and carry a Dynamic Object when dynamic member access is required. But this is ugly and redundant.

So, I need to implement IDynamicMetaObjectProvider myself to achieve dynamic access and serialization together.

After googling/binging unsuccessfully I ask for your help... Can anybody please give a good example (or related link) for doing that?

+2  A: 

Sounds to me like you are re-inventing the ExpandoObject class. Consider a collection of those for your implementation instead.

Hans Passant
No. ExpandoObject is better for isolated objects because of no centralized fields definitions set. Plus, it is not Serializable.
Néstor Sánchez A.
A: 

The solution was to implement Custom Serialization. Implement the ISerializable interface, plus the deserialization constructor.

It takes less time that implement IDynamicMetaObjectProvider.

Néstor Sánchez A.