正如标题所述,.Net中的反射是一个目标,还是来自.Net内部设计的自然结果(就像语言编译成IL组件的那样)?
关于反思的获得.以下是我在本网站上看到的一些反射用法:
我的另一个问题是,如果我们能够通过使用反射来访问私有字段和重写的基本方法(以打破核心框架规则),那么为什么要首先将这些(严格的?)角色放在一边?
反思是一个非常强大的工具; 我完全相信这是非常非常慎重的.不过,我没有引用来支持这一点; 但是 - 是的,强大的反射API也是必需的东西,BinaryFormatter以及从第0天开始的"远程处理"堆栈(但现在不太受欢迎).
实际上,大量的库代码使用反射; 例如,数据绑定或序列化.如果没有反射,您需要手动编写大量代码,以便执行库通过反射自动处理的一些非常简单的事情.
另一个重要用途是元编程; 在运行时编写代码以扩充编译的代码; 在IoC/DI等事情上很有用.或者只是当你需要反射但速度更快时 ; p
重新做的事情private; .NET中存在信任级别; 并非所有代码都可以访问您的内部,除非您完全信任(不可否认,大多数代码确实以完全信任的方式运行).除了一定程度的偏执之外,无论如何这都是一个错误的目标,因为.NET有一些外在的方法可以进入一个过程.
| 归档时间: |
|
| 查看次数: |
124 次 |
| 最近记录: |