1

我正在尝试为我的项目构建业务逻辑。该项目使用了 4 个不同的 WCF 源,它们都提供了类似的产品。我想实现一个涵盖这 4 个产品的产品,例如:

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。那么我怎样才能从所有源类中获得这样的摘要或覆盖类。

提前致谢

4

1 回答 1

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 源、连接等。

于 2013-10-31T16:22:45.887 回答