我在msdn上读了一篇关于reflection的文章,但我甚至不能理解它的好处和用法。
你能提供一些简要的概述,什么是反射,以及我如何从它中获益。
发布于 2010-06-23 20:39:33
反射允许您编写代码,这些代码可以检查代码本身的各个方面。
它可以让你做一些简单的事情,比如:
typeof()以在运行时检查对象的属性,以更改方法的行为(.NET中的各种序列化方法)更复杂的任务,比如:
较早的是更常见的用法。后者对于为其应用程序开发插件体系结构的开发人员或希望在运行时根据配置更改交换程序集的人很有帮助。
发布于 2010-06-23 20:40:54
反射是一种在运行时以编程方式发现类型的方法。这一点非常重要,因为.NET语言是强类型的。能够访问这些元数据是非常有用的。
现在有一件很重要的事情(流畅的接口/适配器)严重依赖反射。特别是,静态反射是相当大的。如果你想看到静态反射的具体例子和很好的解释,请查看:
http://jagregory.com/writings/introduction-to-static-reflection/
http://www.lostechies.com/blogs/gabrielschenker/archive/2009/02/03/dynamic-reflection-versus-static-reflection.aspx
当然,一般来说,这只是反射的一小部分。如果你想了解更多关于反射的一般用法,请查看Apress Pro C# 2008 and the .NET 3.5 Platform, Fourth Edition,第16章。它深入研究了.NET类型系统,以及如何在库中和运行时使用它。
发布于 2010-06-23 20:39:31
反射允许您的代码调用您在编译代码时不知道的方法和属性。其中一个内置的类就是XmlSerializer。您可以传递任何想要转换为XML的对象。它询问对象它的所有属性都在使用反射,然后就能够生成包含表示该对象所需元素的XML文档。
https://stackoverflow.com/questions/3101577
复制相似问题