实现类似MVC ViewBag类型的对象

时间:2023-03-09 18:04:41
实现类似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);