码迷,mamicode.com
首页 > Web开发 > 详细

仿Asp.net MVC 的 ViewBag

时间:2015-12-29 12:31:49      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

一.具体实现

public class ViewBag:System.Dynamic.DynamicObject
{
       private Dictionary<string, object> storage = new Dictionary<string, object>();
 
       public override bool TryGetMember(GetMemberBinder binder, out object result)
       {
           if (storage.ContainsKey(binder.Name))
           {
               result = storage[binder.Name];
               return true;
           }
 
           result = null;
           return false;
       }
 
 
       public override bool TrySetMember(SetMemberBinder binder, object value)
       {
           string key = binder.Name;
 
           if (storage.ContainsKey(key))
               storage[key] = value;
           else
               storage.Add(key, value);
 
           return true;
       }
 
       public override string ToString()
       {
           StringBuilder strSb = new StringBuilder();
           foreach (var item in storage)
           {
               strSb.AppendFormat("property {0}:{1} ",item.Key,item.Value);
           }
           return strSb.ToString();
       }
}
 
 
二 使用
 
1. 为自定义属性赋值
     dynamic bag = new ViewBag();
     bag.Property1 ="test";
2.取值
  string propertyValue= bag.Property1;

仿Asp.net MVC 的 ViewBag

标签:

原文地址:http://www.cnblogs.com/ImBit/p/5085247.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!