我正在构建WCF服务,我想接受List作为我的方法之一的参数。
这是我的代码:
[ServiceContract]
public interface IProductService
{
[OperationContract]
int InsertProducts(List<Product> products);
}
[DataContract]
[KnownType(typeof(List<Product>))]
public class Product
{
[DataMember]
public int ProductId{ get; set; }
[DataMember]
public string ProductName{ get; set; }
[DataMember]
public List<Product> Products { get; set; }
}
当我运行服务时,它会给我一个错误。
WCF不支持此操作,因为它使用NameSpace.Product[]
答案 0 :(得分:5)
通过WCF发送通用列表时,我们总是创建一个具有列表属性的类。
[ServiceContract]
public interface IProductService
{
[OperationContract]
int InsertProducts(MyListofProducts products);
}
[DataContract]
public class MyListofProducts
{
[DataMember]
List<Product> Products { get; set; }
}
[DataContract]
public class Product
{
[DataMember]
public int ProductId{ get; set; }
[DataMember]
public string ProductName{ get; set; }
[DataMember]
public List<Product> Products { get; set; }
}