基于Emit实现的C#版本的BeanCopier
2021-04-09 19:27
标签:version 依赖 生成 通过 一起 reflect 不同 linq [] 在java的技术栈当中,著名的Cglib库里面有一个BeanCopier,这个类的功能就是可以完成两个对象的属性复制工作(哪怕属于两个不同的类). 今天本人通过.net内置的System.Reflection.Emit命名空间写了一个.net版本的BeanCopier,实现原理是基于Emit来直接操作中间代码,从而动态生成实现,类似于一个动态代理。 Nuget安装依赖: 代码如下: 该工具的限制条件是: 2.源类的属性需要具备public类型的get访问器 3.目标类的属性需要具备public类型的set访问器 4.自定义的转换器需要为public类型 源码地址:https://github.com/FanHuaRan/dotnetbeancopier 欢迎大家一起来完善这个工具,有问题可以发邮件与我联系:834171100@qq.com 基于Emit实现的C#版本的BeanCopier 标签:version 依赖 生成 通过 一起 reflect 不同 linq [] 原文地址:https://www.cnblogs.com/Huaran1chendu/p/9057925.htmlInstall-Package BeanCopier -Version 2.1.0
using BeanCopier.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BeanCopier.Emit;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
// 通过工程方法得到一个BeanCopier
var beanCopier = EmitBeanCopierFactory.Instance.Create
1.源类和目标类均必须为public类型
下一篇:【C#复习总结】细说委托
文章标题:基于Emit实现的C#版本的BeanCopier
文章链接:http://soscw.com/index.php/essay/73457.html