求大神帮忙解答C#反射相关问题,具体用在那些地方,越详细越好,拜托了! 15C

最近偶然遇到C#反射这个知识点,虽然在网上看了相关文章,但知识了解了一些皮毛中的皮毛,具体在什么情况下使用最多,相关代码是什么意思,为什么这么写,还是不太明白,求大神们帮忙解答。
如果可以的话也帮忙讲讲在U3D中如何使用!万分感谢!

2个回答

反射主要作用有两个,一个是rtti(运行时类型识别),一个是dc(动态创建)。rtti的使用场景:比如你在vs中引用了一个库,vs的编辑器可以自动下拉显示这个类有什么方法、属性,vs怎么知道这个类有什么方法属性的,就是反射动态获取的。
再比如ef框架,它允许你编写一个实体类,然后生成对应的数据库的表,那么ef怎么知道你的实体类有什么属性,哪个属性是作为关键字,哪个属性是必须的字段,这个也是反射实现的。
dc的运用很简单,比如说插件系统,主程序先开发出来,插件后开发出来,主程序肯定不能直接引用插件dll,那么主程序怎么创建的插件并调用的,就是反射实现的。再比如,nunit是一个测试的框架,它怎么能调用你待测试的方法的,显然框架的作者在写框架的时候不能直接调用你的代码,它就是反射调用的。

简单来说,反射就是在应用程序"运行时"的阶段,对类型的一种解析操作,获取类型的相关信息,例如 类成员、标记特性、继承链、实现的接口等。
反射多用于动态编程,可以通过预知对象的类型信息来进行相关操作,例如ORM框架可以实现数据库对象 - 实体类 的映射。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!