大佬教程收集整理的这篇文章主要介绍了c# dynamic实现动态实体,不用定义实体就能序列化为标准json,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Dynamic; namespace SelfDynamicObj { public delegate object DeleDynamic(dynamic sender,params object[] pramas); public class DynObj : DynamicObject { public Dictionary<String,object> _values; public DynObj() { _values = new Dictionary<String,object>(); } public object GetPropertyValue(String propertyName) { if (_values.ContainsKey(propertyName) == true) { return _values[propertyName]; } return null; } public void SetPropertyValue(String propertyName,object value) { if (_values.ContainsKey(propertyName) == true) { _values[propertyName] = value; } else { _values.Add(propertyName,value); } } public override bool TryGetMember(GetMemberBinder binder,out object result) { result = GetPropertyValue(binder.Name); return result == null ? false : true; } public override bool TrySetMember(SetMemberBinder binder,object value) { SetPropertyValue(binder.Name,value); return true; } public override bool TryInvokeMember(InvokeMemberBinder binder,object[] args,out object result) { var deLeobj = GetPropertyValue(binder.Name) as DelegateObj; if (deLeobj == null || deLeobj.CallMethod == null) { result = null; return false; } result = deLeobj.CallMethod(this,args); return true; } public override bool TryInvoke(InvokeBinder binder,out object result) { return base.TryInvoke(binder,args,out result); } } public class DelegateObj { private DeleDynamic _deleDynamic; public DeleDynamic CallMethod { get { return _deleDynamic; } } public DelegateObj(DeleDynamic deleDynamiC) { this._deleDynamic = deleDynamic; } public static DelegateObj Function(DeleDynamic deleDynamiC) { return new DelegateObj(deleDynamic); } } }
使用如下:
List<String> names = new List<String>() { "a00","b00","c00","d00" };
dynamic obj = new DynObj();
obj.date = "2019-02-26";
obj.stories = names;
String result0 = JsonConvert.serializeObject(obj._values);
序列化后的结果如下:
{ "date": "2019-02-26","stories": ["a00","d00"]}
以上是大佬教程为你收集整理的c# dynamic实现动态实体,不用定义实体就能序列化为标准json全部内容,希望文章能够帮你解决c# dynamic实现动态实体,不用定义实体就能序列化为标准json所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。