dynamic手动添加字段

使用,如果没有重新DynamicObject,model.name就会报错

 

//dynamic model = new {name=""};
            //Console.WriteLine(model.name);
            //Console.WriteLine(model.account);报错

 

 

dynamic model = new NurseScheduleStatisticsModel();
            model.name = "wjl";
            Console.WriteLine(model.name);

 

 

public class NurseScheduleStatisticsModel:DynamicObject
    {
        Dictionary<string, object> properties = new Dictionary<string, object>();
        public override bool TrySetMember(SetMemberBinder binder, object value)
        {
            if (!properties.Keys.Contains(binder.Name))
            {
                properties.Add(binder.Name,value.ToString());
            }
            return true;
        }
        public override bool TryGetMember(GetMemberBinder binder, out object result)
        {
            return properties.TryGetValue(binder.Name,out result);
        }
    }

 

posted @ 2018-09-13 18:06  wjl910  阅读(1184)  评论(0)    收藏  举报