我对ASP.NET非常陌生,我来自VB6 / ASP (经典)/ SQL Server2000背景。我读了很多关于Visual Studio2008的文章(我已经安装了它,并在四处摸索)。我读过关于“反射”的文章,并希望有人能尽可能地向我上面写过的技术的老开发者解释一下,反射到底是什么,以及我为什么要使用它……我很难想明白这一点。谢谢!
发布于 2008-10-05 02:40:48
反射允许您以编程方式加载程序集,获取程序集中所有类型的列表,获取这些类型中所有属性和方法的列表,等等。
举个例子:
myobject.GetType().GetProperty("MyProperty").SetValue(myobject, "wicked!", null)发布于 2008-10-05 02:32:20
反射是如何探索不同类型的内部结构,而无需正常访问(即。私有的、受保护的等成员)。
它还用于动态加载DLL并访问其中定义的类型和方法,而无需将它们静态编译到您的项目中。
简而言之:反射是您的工具包,用于窥探一段代码的内部。
至于你为什么要使用它,它通常只在复杂的情况下使用,或者代码分析。另一个常见的用途是将预编译的插件加载到项目中。
发布于 2008-10-05 02:39:10
它允许对象的内部结构反映给外部世界(使用所述对象的代码)。
静态类型语言如C# (和Java)的一个实际用途是允许在运行时通过字符串调用方法/成员(例如,方法的名称-也许您不知道在编译时将使用的方法的名称)。
在动态语言的上下文中,我没有听说过这个术语(因为通常你不会担心上面的问题),除了迭代方法/成员列表等之外……
https://stackoverflow.com/questions/171366
复制相似问题