博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 类相同属性赋值
阅读量:4313 次
发布时间:2019-06-06

本文共 3123 字,大约阅读时间需要 10 分钟。

做项目时偶尔B类赋值给A类,碰巧A和B类型很多属性字段名是一样的,或者只是大小写不一样,这是可以利用泛型,反射来写一个自动化赋值的方法。

下面方法不考虑大小写不一样的情况,如果要考虑,可以使用字符串方法 ToUpper() 、ToLower() 后,对比字段名是否一样。

值得注意的地方,属性到底有没有Get或者Set方法 ?B属性Set访问器是非公共的或不存在 则会赋值时出现异常。同理:A属性如果 Get 访问器是非公共的或不存在,则取值时出现异常

因此上面使用了 GetSetMethod(),GetGetMethod()做判断。如果Get 、Set 访问器不能正常获取,则返回为null。

 

感觉下面的代码写法更可读:省略了一个循环

 

估计我写的就是下面的原理,序列化,反序列化,不区分大小写。当然,不能否定上面的内容。

public static A MapperTwo
(B b) { return Newtonsoft.Json.JsonConvert.DeserializeObject
(Newtonsoft.Json.JsonConvert.SerializeObject(b)); }

 

转载于:https://www.cnblogs.com/bibi-feiniaoyuan/p/9474236.html

你可能感兴趣的文章
poj3368 RMQ
查看>>
“此人不存在”
查看>>
github.com加速节点
查看>>
解密zend-PHP凤凰源码程序
查看>>
python3 序列分片记录
查看>>
Atitit.git的存储结构and 追踪
查看>>
atitit 读书与获取知识资料的attilax的总结.docx
查看>>
B站 React教程笔记day2(3)React-Redux
查看>>
找了一个api管理工具
查看>>
C++——string类和标准模板库
查看>>
zt C++ list 类学习笔记
查看>>
git常用命令
查看>>
探讨和比较Java和_NET的序列化_Serialization_框架
查看>>
1、jQuery概述
查看>>
数组比较大小的几种方法及math是方法
查看>>
FTP站点建立 普通电脑版&&服务器版
查看>>
js 给一段代码,给出运行后的最终结果的一些综合情况、
查看>>
webservice 详解
查看>>
js自动补全实例
查看>>
VS无法启动调试:“生成下面的模块时,启用了优化或没有调试信息“
查看>>