实现类似MVC ViewBag类型的对象

  public class ViewBag : DynamicObject {
        private readonly  Dictionary<string,dynamic> dic=new  Dictionary<string,dynamic>(); 

        public ViewBag() {

        }
        private Dictionary<string,dynamic> ViewData {
            get {
                return dic;
            }
        }
        public override IEnumerable<string> GetDynamicMemberNames() {
            return ViewData.Keys;
        } 

        public override bool TryGetMember(GetMemberBinder binder, out object result) {
            result = ViewData[binder.Name];
            return true;
        }

        public override bool TrySetMember(SetMemberBinder binder, object value) {
            ViewData[binder.Name] = value;
            return true;
        }
    }

调用:

 dynamic viewBag = new ViewBag();
viewBag.Title="xxx";
Console.WriteLine(viewBag.Title);
时间: 2024-10-08 10:59:51

实现类似MVC ViewBag类型的对象的相关文章

.net Mvc Controller 接收 Json/post方式 数组 字典 类型 复杂对象

原文地址:http://www.cnblogs.com/fannyatg/archive/2012/04/16/2451611.html ------------------------------------------------------------------------------------------------------------------ Asp.net Mvc Controller Json数组接收数组字典 类型 复杂对象 方法一,(最复杂的方法)扩展ModelBin

C# 通过反射实现类似MVC路由的机制

最近封装了个功能非常类似于MVC的路由.//MVC路由机制先找到Controller Action 什么是反射 反射(Reflection)是.NET中的重要机制,通过放射,可以在运行时获 得.NET中每一个类型(包括类.结构.委托.接口和枚举等)的成员,包括方法.属性.事件,以及构造函数等.还可以获得每个成员的名称.限定符和参数 等.有了反射,即可对每一个类型了如指掌.如果获得了构造函数的信息,即可直接创建对象,即使这个对象的类型在编译时还不知道. 实现思路 先是根据DLL名称进行装载,然后反

Python 类型和对象(转)

译文:http://wiki.woodpecker.org.cn/moin/PyTypesAndObjects 原文:http://www.cafepy.com/article/python_attributes_and_methods/ 解释新式的Python对象(new-style): <type 'type'> and <type 'object'>是什么东西 用户定义的类及实例是如何相互关联的,和内置类型有啥关系how user defined classes and in

新建类型组对象

在ABAP开发中,经常需要定义一些常量或者变量,而且可能存在多个程序中需要用到类似的变量或者结构体,如果在每个程序中都需要重复定义这些变量或者结构体的话,势必存在重复的代码编写,而且也容易出错,当需要变动时可以同时修改多个程序,造成一些冗余的工作. SAP提供了类型组,允许用户建立一些公用的对象,允许在不同的程序中调用,这样不但实现了代码维护的简化,而且能够方便开发人员更好的管理程序. 类型组也称为类型池,通过数据字典对象进行维护,所创建的对象能被ABAP程序及RFC使用. 新建类型组: SE1

asp.net MVC 枚举类型的处理的几种方式

1.基架自动生成@Html.EnumDropDownListFor()辅助方法映射到模型类属性的元数据. @model MajorConstruction.Models.Course <div class="form-group"> @Html.LabelFor(model => model.CourseType, htmlAttributes: new { @class = "control-label col-md-2" }) <div

ASP.NET MVC 描述类型(一)

ASP.NET MVC 描述类型(一) 前言 在前面的好多篇幅中都有提到过ControllerDescriptor类型,并且在ASP.NET MVC 过滤器(一)篇幅中简单的描述过,今天我们就来讲一下ControllerDescriptor类型. ControllerDescriptor类型的由来 在ASP.NET MVC 过滤器(一)篇幅中有过示意图,当时说明了在生成过滤器信息对象集合之前所要做的一些步骤中包含着生成ControllerDescriptor类型,并没有详细的说明,我们先来看一下

是指存在继承关系的对象,不是任意类型的对象。当对不存在继承关系的对象进行强制类型转换时

这里所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象.当对不存在继承关系的对象进行强制类型转换时,java 运行时将抛出 java.lang.ClassCastException 异常.在继承链中,我们将子类向父类转换称为“向上转型”,将父类向子类转换称为“向下转型”.很多时候,我们会... Coda 发布于 2015-04-12 14:09 评论(1)阅读(72) 1 http://www.djob.com/job_8EED14ACE3DE31D0.htmlhttp://www.

含有Date类型的对象或集合转换成json时的问题

当我们把含有Date类型的对象或者集合直接转换为json,传回前台的时候不会报错,但是前台显示的时候是两个Object,而不会显示正常的日期. 当我们进debug调试的时候不会发现有错误,但是在解析JSON的时候就会发现: 在转换为JSON的过程中把date对象分开转化,即:年.月.日.时.分.秒,每个都当成一个对象给转化了. 这时候我们就需要做一些转换了 下面给大家提供一些大神给出常规的解决方案: 一:流星焱雨给出的解决方案 二:jadethao给出的解决方案 而当我们基本只需要临时显示日期的

Object类型(对象)

ECMAscript中的对象其实就是一组数据和功能集合.这里简单谈谈对象,复杂以后补充. 1 如何创建对象 简单创建: var box = {}; alert(box); //[object object] 2.复杂的创建: var box = new Object(); alert(box); //[object object] 3.new Object()可以表示一个对象,那么new可以表示其他类型的对象,如:new Numer().new String()…… var box = new