BFr*_*ree 10

假设您正在编写一个基本的序列化例程,它会将任何对象序列化为XML.你如何使它足够通用,以便它可以适用于任何对象?如果您有一个知道所有属性的类,那么您可以轻松编写"ToXml()"函数,在该函数中手动将所有属性写入XML.如果你想将它扩展到任何对象怎么办?在这种情况下,您需要在运行时反映属性,并将它们写出到XML.

它有更多的用途,这是我想到的第一个用途.


JP *_*oto 5

反射有很多用途。.NET Framework 将它用于序列化数据绑定,它还可以用于创建检查代码的工具,如 Reflector、FxCop 和 NUnit 以及 ORM 数据库框架。它在运行时具有广泛的用途,从记录有关对象的特定事物到依赖注入框架。它还可以用于在运行时动态执行方法或设置属性,就像使用自定义属性一样。它还可以用于更高级别的编程,例如元编程和自修改代码。