【发布时间】:2010-11-27 12:05:24
【问题描述】:
我想知道是否有人可以帮助我 - 我在反思方面做得不多,但了解基本原则。
我想做的事:
我正在开发一个类,该类收集关于本地系统、网络等的大量信息,用于自动报告错误。不必在每次添加新属性时都更改测试工具,而是(理想情况下)希望能够将批次序列化为 XML 字符串并将其显示在文本框中。
不幸的是,框架不会对只读属性(几乎我的所有属性)使用默认的 XML 序列化程序,因为它们无法正确反序列化
[我不确定我是否同意任何序列化的东西都必须是可反序列化的假设——MS 说这是一个“设计”的功能,我想我可以理解——也许是一个标签表明它应该被序列化反正会有优势吗?]
最初的方法是使属性可获取和可设置(在设置器上抛出异常),但事后整理的工作量似乎有点过多,我希望这些属性在最终版本中是只读的.
我需要什么帮助:
我目前的计划是使用反射来递归地遍历我最顶层的聚集类的每个(公共)属性。问题是,我见过的样本不能递归处理。此外,我只想检查一个对象的属性(如果它在我的一个程序集中) - 否则只需调用 .ToString 即可。
如果我没有将检查限制在我的程序集中,我假设我会得到(比如说)一个字符串,该字符串包含一个 Length,而 Length 又将具有 .Tostring 方法...
为了这个项目的目的,我可以几乎保证我的代码中没有循环引用,因为这只会用作开发工具,所以我不是太 担心它时不时地跑来跑去。
我会很感激一些例子/建议。
非常感谢。
【问题讨论】:
标签: vb.net visual-studio-2008 reflection assemblies