无法将类的实例传递给WCF服务

时间:2014-04-09 16:40:30

标签: c# wcf

这是我写的代码。但添加产品方法不起作用。任何人都可以帮助我吗?

public class Sales : ISales
    {
        ArrayList plist;

        public Sales()
        {
            plist = new ArrayList();
            plist.Add(new Product() { productId=1,name="com",description="fsf",price=2000});
        }


        public void addProduct(Product p)
        {
             plist.Add(new Product() { productId = 2, name = "com", description = "fsf", price = 2000 });

        }

    }

这是接口类。得到价格的方法是有效的。但是获得产品方法不起作用。 我无法理解这是什么问题。

namespace WcfService2
{

[ServiceContract]
[ServiceKnownType(typeof(Product))]
public interface ISales
{

    [OperationContract]
    double getprice(int id);

    [OperationContract]
    Product getProduct(int pid);

    [OperationContract]
    void addProduct(Product p);

}

//need to have datacontarct for composite data type
[DataContract]
public class Product
{
    [DataMember]
    public int productId { set; get; }
    [DataMember]
    public string name { set; get; }
    [DataMember]
    public string description { set; get; }
    [DataMember]
    public double price { set; get; }

}




}

1 个答案:

答案 0 :(得分:0)

addProduct方法的实施似乎并不正确。您已声明参数,但您没有使用它。如果要将作为参数传递的产品添加到列表中,则应使用:

public void addProduct(Product p)
{
    plist.Add(p);
}