我们需要实现一些通用的对象结构,就像动态语言中的对象一样,这样我们就可以在运行中创建整个对象图。这个类必须是可序列化的,并且用户友好。
到目前为止,我们已经使用点符号路径从Dictionary<string, object>
派生的类进行了一些实验,以在对象树中存储属性和集合。我们还发现article实现了类似的东西,但它似乎也不完全适合我们的图片。
你知道一些处理类似问题的好的实现/库,或者你有任何(非平凡的)想法可以帮助我们实现自己的实现吗?
另外,我可能不得不说我们使用的是.NET 3.5,因此我们无法利用.NET 4.0中的新功能,如动态类型等(据我所知,它也无法使用) .NET 3.5解决方案中的任何子集)。
答案 0 :(得分:3)
一个易于动态添加属性(以分层方式)和序列化的类是XDocument
。
除非你转到.Net 4,否则你不会更容易使用。
我特别喜欢他们添加显式强制转换操作符的方式:
XElement address = d.Element("Address");
int number = (int)address.Attribute("Number");
答案 1 :(得分:2)
过去我已经完成了属性包实现,包括ICustomTypeDescriptor
/ ITypedList
之类的所有muck以使其绑定 - 并且它可以是很多工作。特别是如果你包括序列化(不包括BinaryFormatter
,它有自己的问题)。
这种类型的动态对象确实非常适合一般静态类型语言(如C#),但它可以使用。虽然我不是他们最忠实的粉丝(甚至不是一点点),但你可以在这里使用DataTable
/ DataRow
吗?如果没有大量的工时开发/调试,它就会按照您的要求进行操作。
答案 2 :(得分:0)