在c#中映射两个类
本文关键字:两个 映射 | 更新日期: 2023-09-27 18:11:47
我有两个类
public class foo1
{
public int id;
public string image_link;
public string sale_price;
}
和
public class foo2
{
public int Id;
public string ImageLink;
public string SalePrice
}
属性值只有下划线和大小写不同。我需要映射这两个类。
现在我正在尝试这样的东西,它的工作:
//var b = object of foo2
var a = new foo1{
a.id = b.Id,
a.image_link = b.ImageLink,
a.sale_price = b.SalePrice
}
我听说过AutoMapper,但我不清楚我将如何使用它,或者忽略大小写或下划线的选项在哪里。或者有更好的解决方案吗?
您的代码很好,并按预期工作。
我个人建议你不要使用automapper。网上有很多关于为什么的解释,例如:http://www.uglybugger.org/software/post/friends_dont_let_friends_use_automapper基本上主要的问题是,如果你重命名你的foo1
对象的一些属性而不修改你的foo2
对象,你的代码将在运行时无声地失败。
作为@ken2k的回答,我建议你不要使用对象映射器。
如果你想保存代码,你可以为映射创建一个新方法(或者直接在构造函数中)。
public class foo1
{
public int id;
public string image_link;
public string sale_price;
public void map(foo2 obj)
{
this.id = obj.Id;
this.image_link = obj.ImageLink;
this.sale_price = obj.SalePrice;
}
}
然后//var b = object of foo2
var a = new foo1();
a.map(b);