可以';t将类的实例传递给WCF服务

本文关键字:实例 服务 WCF 可以 | 更新日期: 2023-09-27 17:57:33

这是我编写的代码。但是加乘积的方法不起作用。有谁能帮我吗?

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 });
        }
    }

这是接口类。获取价格的方法正在发挥作用。但get product方法不起作用。我不明白问题出在哪里。

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; }
}


}

可以';t将类的实例传递给WCF服务

addProduct方法的实现似乎不正确。你已经声明了一个参数,但你没有使用它。如果你想把作为参数传递的产品添加到你的列表中,你应该使用:

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