从不同来源创建摘要类

时间:2013-10-31 15:40:36

标签: c# wcf class

我正在尝试为我的项目构建业务逻辑。该项目使用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。那么我如何从所有源类中获得这样的摘要或封面类。

提前致谢

1 个答案:

答案 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源,连接等。