首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么是C#中的反射,有什么好处。如何使用它来获得好处

什么是C#中的反射,有什么好处。如何使用它来获得好处
EN

Stack Overflow用户
提问于 2010-06-23 20:31:24
回答 7查看 51.5K关注 0票数 45

我在msdn上读了一篇关于reflection的文章,但我甚至不能理解它的好处和用法。

你能提供一些简要的概述,什么是反射,以及我如何从它中获益。

EN

回答 7

Stack Overflow用户

发布于 2010-06-23 20:39:33

反射允许您编写代码,这些代码可以检查代码本身的各个方面。

它可以让你做一些简单的事情,比如:

  1. 在运行时检查对象的类型(简单地调用typeof()以在运行时检查对象的属性,以更改方法的行为(.NET中的各种序列化方法)

更复杂的任务,比如:

  1. 在运行时加载程序集,查找特定的类,确定它是否与给定的接口匹配,并动态调用某些成员。

较早的是更常见的用法。后者对于为其应用程序开发插件体系结构的开发人员或希望在运行时根据配置更改交换程序集的人很有帮助。

票数 53
EN

Stack Overflow用户

发布于 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类型系统,以及如何在库中和运行时使用它。

票数 14
EN

Stack Overflow用户

发布于 2010-06-23 20:39:31

反射允许您的代码调用您在编译代码时不知道的方法和属性。其中一个内置的类就是XmlSerializer。您可以传递任何想要转换为XML的对象。它询问对象它的所有属性都在使用反射,然后就能够生成包含表示该对象所需元素的XML文档。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3101577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档