我正在尝试为我的项目构建业务逻辑。该项目使用4种不同的WCF源,它们都提供类似的产品。我想实现一个涵盖该产品的产品,例如:
class WCF1.Product {
string Name;
int ID;
string Image;
string Brand;
}
class WCF2.ProductDetail {
string ProductName;
int Identity;
string Photo;
string Color;
}
class WCF3.ProductInfo {
string Name;
int ID;
string Image;
}
class WCF4.Product {
string ProductName;
int Identity;
string Photo;
double Weight;
}
至少我想拥有
class Product {
string Name;
int ID;
string Photo;
string Brand;
string Color;
double Weight;
}
在这两个类上,ID或Identify表示每个产品的唯一ID。那么我如何从所有源类中获得这样的摘要或封面类。
提前致谢
答案 0 :(得分:2)
难道你不能只手绘图吗?
public class ProductBO
{
Product GetProduct(int ID)
{
// make service calls against the ID and populate DTOs from services
WCF1.Product p1 = new WCF1.Product();
WCF2.Product p2 = new WCF2.Product();
WCF3.Product p3 = new WCF3.Product();
WCF4.Product p4 = new WCF4.Product();
p1 = WCF1.GetProduct(ID);
p2 = WCF2.GetProduct(ID);
p3 = WCF3.GetProduct(ID);
p4 = WCF4.GetProduct(ID);
// then map each to your domain Product object
Product p = new Product();
p.Name = p1.Name;
p.ID = ID;
p.Color = p2.Color;
p.Brand = p1.Brand;
p.Photo = p2.Photo;
p.Weight = p4.Weight;
return p;
}
}
我没有考虑名称,照片/图像等之间的任何差异,但如果它们不同,那么您需要考虑使用哪个WCF源,连接等。