编写属性聚合器

时间:2015-10-08 08:19:27

标签: c# .net wpf reflection

背景

在花了很多时间研究之后,我还没有找到任何方法将多个对象分配给y(扩展WPF工具包)。我的下一个想法是创建我自己的聚合器类,该类接收所选对象并将其公共属性公开给外部世界。然后,我将此类(的实例)分配给PropertyGrid。用户在PropertyGrid中所做的任何更改都将由聚合器类传递给选定的对象。

问题

框架中是否有任何内容(特别是反射)可以帮助我完成此任务?我域中的所有对象都从一个共同的祖先继承并添加自己的新属性(或覆盖祖先版本)。类层次结构是多层次的深层次。

更新

对于遇到与我相同情况的其他人,我终于能够解决PropertyGrid问题了。有关解决方案,请参阅my other post

1 个答案:

答案 0 :(得分:0)

希望我能正确理解你想要的东西。

其中一个想法是使用T4ToolBox通过脚本生成预编译类(也是模板文件中的C#代码)。

  • 定义要聚合到xml中的对象。
  • 然后你可以使用反射遍历对象中的所有公共方法/属性(基于xml)来找出常用方法的集合
  • 生成一个接口和(如果需要)相应的具体类
  • 此后的一个手动工作是通过实现新生成的界面来更改原始对象。