C#.NET扩展的动态对象支持动态属性和方法以及Json格式与对象互转
C#.NET扩展的动态对象支持动态属性和方法以及Json格式与对象互转
C# Code:
dynamic theObj = new MyDynamicObject(); theObj.Name = "我的动态属性名称";//动态属性 theObj.Age = 10; theObj.Model = "www.cscode.net C/S框架网修订(2017-09-18)"; string jsonString = JsonConvert.SerializeObject(theObj); //{"Name":"我的动态属性名称","Age":10,"Model":"www.cscode.net C/S框架网修订(2017-09-18)"} dynamic eo2 = JsonConvert.DeserializeObject<MyDynamicObject>(jsonString); string value1 = eo2.Title; string value2 = eo2.Content; string value3 = eo2.Name; string value4 = eo2.Age.ToString(); string value5 = eo2.Model; //动态方法,这里不能没法定义参数,调用的时候可以是任意多参数,具体参数类型和含义就只能自己去小心处理了. theObj.show = MyDynamicDelegateObj.CreateDelegate(OnTestDynamicDelegate); theObj.show("Hello OK:"); theObj.shows("hello");//无此方法,抛出异常 //来源:C/S框架网(www.csframework.com) QQ:1980854898
C# Code:
private object OnTestDynamicDelegate(dynamic sender, params object[] args) { if (args != null && args.Length > 0) { MessageBox.Show(args[0].ToString() ":" sender.Name); } else { MessageBox.Show(sender.aaa); } return null; } //来源:C/S框架网(www.csframework.com) QQ:1980854898
参考文档:
C#.Net对象内存模型及堆/栈数据结构详解 (四) C#.Net开发继承UITypeEditor接口的自定义属性编辑器 C#.Net组件开发 - 设计时使用自定义属性编辑器持久化对象 标签:C#.Net组件开发 - 自定义设计器持久化对象的属性 标签:C#.Net组件开发 - 自定义属性编辑器持久化对象的属性 支持两种格式的流水号码,在DAL层重载GetNumber方法 C#.NET 对象(字符串)转换常用扩展方法 C#.NET 定义动态对象dynamic以及属性和方法 C#.NET 定义动态对象dynamic以及转换JSON字符串 通过.NET反射动态调用SetValue方法给属性PropertyInfo赋值 【原创】C# 深度拷贝对象 使用.NET反射+递归原理实现深度克隆 C#类扩展方法,字符串对象转换,常用扩展方法StringExtensions C# LINQ使用Distinct方法检查对象某个属性的值是否重复 C#数据转换类ConvertEx,封装.Net的Convert对象 C# 动态对象转换为实体对象支持泛型(DynamicToEntity)
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |