我们需要实现一些通用的对象结构,就像动态语言中的对象一样,这将使我们能够即时创建整个对象图。此类必须是可序列化的,并且以某种方式易于用户使用。
到目前为止,我们已经进行了一些实验,这些实验使用点表示法从Dictionary<string, object>
派生的类在对象树中存储属性和集合。我们还找到了实现类似功能的article,但它似乎也不完全适合我们的图片。
您是否知道一些解决类似问题的好的实现/库,或者您有(非平凡的)想法可以帮助我们实现自己的实现?
另外,我可能不得不说我们使用的是.NET 3.5,因此我们无法利用.NET 4.0中的新功能(例如动态类型等)(据我所知,也无法使用在.NET 3.5解决方案中)。
最佳答案
过去,我已经完成了property-bag的实现,包括像ICustomTypeDescriptor
/ ITypedList
这样的所有污物,以使其具有约束力-这可能需要很多工作。特别是如果您包括序列化(不包括BinaryFormatter
,它有其自身的问题)。
这种类型的动态对象不能很好地适应像C#这样的一般静态类型的语言,但是可以使它起作用。虽然我不是他们的忠实粉丝(甚至一点也不),但您可以在这里使用DataTable
/ DataRow
吗?它可以满足您的要求,而无需进行大量的工时开发/调试。