在 C# 中映射两个 类
Mapping two classes in c#
我有两个类
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,但我不清楚我将如何使用它,或者忽略其中的大小写或下划线的选项在哪里。或者有更好的解决办法吗?
您的代码没有问题并且按预期工作。
我个人建议您不要使用自动映射器。网上关于为什么的解释很多,举个例子: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);
我有两个类
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,但我不清楚我将如何使用它,或者忽略其中的大小写或下划线的选项在哪里。或者有更好的解决办法吗?
您的代码没有问题并且按预期工作。
我个人建议您不要使用自动映射器。网上关于为什么的解释很多,举个例子: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);