MVC 反射
我在网上百度 mvc 网站的权限,里边提到反射。 这个词以前也看到过,但是还是不懂,百度了下,没有找到什么叫反射,很是费解,请解释下,谢谢
[解决办法]
(1)动态创建一个未知类型的对象实例,动态调用一个未知类型对象的方法。
(2)在运行的时候确定一个未知的类型,它有什么方法、字段、属性等。
对于MVC来说就是,MVC框架是事先微软写好的。你的Controller、Model等等是后来编的。那么显然MVC框架不能引用你的Controller、Model等对象,那么它怎么才能调用你写的类中的东西呢?这就用到了反射。
[解决办法]
MVC的UI是空白的,并不知道要呈现那种类型的View,
以Webform举例:
一个页面其实是空白的,仅仅是个画布,等待被视图控制器渲染
在页面自举的过程中,根据接收到具体的REST风格的路由信息动态加载对应的View模型,
只要view加载成功,view中的控制器就会自动的向页面渲染“图像”
而这里需要动态加载不同的View,刚好可以利用反射技术
代码如下:
using System.Reflection;
using StyleSoft.Common4;
using System.Collections.Generic;
public partial class View : StyleSoft.UI.WebForm.Views.BasePage {
protected override void OnPreInit(System.EventArgs e) {
base.OnPreInit(e);
string _assName = AppConst.企业库名称;
string _className = MyHelper.ToString(RouteData.Values[AppConst.ViewName]);
_className = AppConst.命名空间 + _className;
Assembly.Load(_assName).CreateInstance(_className);
} //end func
}//end class