NLite

EmitMapper与NLiteMapper在多接口继承下映射的问题

你说的曾经没有我的故事 提交于 2020-02-06 06:48:22
先恭喜下 风云 的NLiteMapper组件在映射性能上有很大提高! 说正题:我在使用 EmitMapper 的过程中发现,如果在一次映射中,from类型是interface(暂且叫InterfaceA吧),并且该interface(InterfaceA)又继承自另一个interface(暂且叫InterfaceB吧),这时候,InterfaceB中的属性不会映射至to类型,这样会造成映射属性数据不完的问题。出于好奇,我又测试一下 风云 的NLiteMapper看能解决我遇到的这个问题,答案在后面! 验证一下我刚说的话,下面是整个测试的一个简单类图 测试代码很简单 static void Main(string[] args) { ClassAImpISub from = new ClassAImpISub(); from.StrA = "StrA"; from.StrB = "StrB"; //emit mapper var to = EmitMapper.ObjectMapperManager.DefaultInstance.GetMapper<ISub, ClassB>().Map(from); Console.WriteLine("after emit mapper:"); Console.WriteLine("ClassAImpISub.StrA={0}

Mini 容器学习笔记1——环境搭建(基础篇)

烂漫一生 提交于 2020-01-13 04:59:28
一. 环境下载 到Mini 容器的 官方网站 下载 NLite框架 的二进制文件,下载并解压后就可以了。 我们使用NLite框架需要用到下面的文件: NLite.dll(必要) 二. 建立NLite应用程序 新建一个控制台应用程序 HostMini 添加NLite.dll 引用 添加命名空间:using NLite;using NLite.Mini; 在主函数中添加创建Mini容器的代码:var container = new Kernel(); 创建契约接口IMessageSender 创建组件EmailSender 通过服务注册表注册组件EmailSender 通过服务定位器获取契约接口 调用契约方法: 运行程序,输出结果 using System; using System.Collections.Generic; using System.Linq; using System.Text; using NLite; using NLite.Mini; namespace HostMini { public class App { [Contract] public interface IMessageSender { void Send(string message); } public class EmailSender : IMessageSender { public

Mini 容器学习笔记1——环境搭建(基础篇)

北城以北 提交于 2019-11-29 07:46:17
一. 环境下载 到Mini 容器的 官方网站 下载 NLite框架 的二进制文件,下载并解压后就可以了。 我们使用NLite框架需要用到下面的文件: NLite.dll(必要) 二. 建立NLite应用程序 新建一个控制台应用程序 HostMini 添加NLite.dll 引用 添加命名空间:using NLite;using NLite.Mini; 在主函数中添加创建Mini容器的代码:var container = new Kernel(); 创建契约接口IMessageSender 创建组件EmailSender 通过服务注册表注册组件EmailSender 通过服务定位器获取契约接口 调用契约方法: 运行程序,输出结果 using System; using System.Collections.Generic; using System.Linq; using System.Text; using NLite; using NLite.Mini; namespace HostMini { public class App { [Contract] public interface IMessageSender { void Send( string message); } public class EmailSender : IMessageSender { public