日期:2014-05-17  浏览次数:20409 次

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