先恭喜下风云 的NLiteMapper组件在映射性能上有很大提高!

说正题:我在使用EmitMapper 的过程中发现,如果在一次映射中,from类型是interface(暂且叫InterfaceA吧),并且该interface(InterfaceA)又继承自另一个interface(暂且叫InterfaceB吧),这时候,InterfaceB中的属性不会映射至to类型,这样会造成映射属性数据不完的问题。出于好奇,我又测试一下风云的NLiteMapper看能解决我遇到的这个问题,答案在后面!

验证一下我刚说的话,下面是整个测试的一个简单类图

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

测试代码很简单

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},ClassAImpISub.StrB={1}", to.StrA, to.StrB);
 
 
            //nlite mapper
            var to_another = NLite.Mapper.CreateMapper<ISub, ClassB>().Map(from);
            Console.WriteLine("after nlite mapper:");
            Console.WriteLine("ClassAImpISub.StrA={0},ClassAImpISub.StrB={1}", to_another.StrA, to_another.StrB);
 
            Console.ReadLine();
        }

相关文章:

  • 2021-12-12
  • 2022-01-03
  • 2021-05-26
  • 2022-12-23
  • 2022-01-10
  • 2021-08-21
猜你喜欢
  • 2021-12-25
  • 2021-11-08
  • 2022-12-23
  • 2021-05-03
  • 2021-06-21
  • 2022-01-09
  • 2021-08-26
相关资源
相似解决方案