Как отправить список объектов в сервис WCF? - PullRequest
3 голосов
/ 22 ноября 2011

Я создаю службу 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[]

1 Ответ

5 голосов
/ 22 ноября 2011

При отправке общего списка через 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; } 
} 
...