加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 通过强制转换在2个类之间传递值

发布时间:2020-12-16 01:44:16 所属栏目:百科 来源:网络整理
导读:我有 public class MyClass1{ public string Name; public string Address;}public class MyClass2{ public int Id; public string Name; public string Address;}var a = new MyClass1 {Name="SomeName",Address="SomeAddress" }; 我不想这样做 b.Name = a.
我有

public class MyClass1
{
   public string Name;
   public string Address;
}
public class MyClass2
{
   public int Id; 
   public string Name;
   public string Address;
}

var a = new MyClass1 {Name="SomeName",Address="SomeAddress" };

我不想这样做

b.Name = a.Name;
b.Address = a.Address

因为我有30多个领域.

我想要的是:

MyClass2 b = a;

解决方法

你想要的是不可能的.我建议你 AutoMapper允许你定义一个映射:

Mapper.CreateMap<MyClass1,MyClass2>();

然后在这两个类的实例之间进行映射:

var a = new MyClass1 { Name = "SomeName",Address = "SomeAddress" };
var b = Mapper.Map<MyClass1,MyClass2>(a);

作为奖励,您将能够执行以下操作:

IEnumerable<MyClass1> list1 = ...
IEnumerable<MyClass2> list2 = Mapper.Map<IEnumerable<MyClass1>,IEnumerable<MyClass2>>(list1);

另一种可能性是使用反射来遍历源对象的所有属性并将它们设置在目标对象中但是为什么在存在像AutoMapper这样的优秀工具时重新发明轮子?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读