2014-02-26 77 views
0

我有一個WCF服務,並且我想將一個List<ThePassenger>返回給客戶端。在我的界面部分,我已經聲明瞭一個返回List<ThePassenger>並實現它的函數。如何從WCF服務正確返回列表<struct>?

[OperationContract] 
List<ThePassenger> GetPassengers(); 

這是ThePassenger結構:

MyServiceClient client = new MyServiceClient(); 
client.GetPassengers(); 

我:

[DataContract] 
public struct ThePassenger 
{ 
    [DataMember] 
    public string firstname; 
    [DataMember] 
    public string lastname; 
    [DataMember] 
    public string passport; 
    [DataMember] 
    public string flight; 
    [DataMember] 
    public string ticket; 
    [DataMember] 
    public string meal; 
    [DataMember] 
    public string baggage; 
    [DataMember] 
    public string bookingkey; 
}; 

在客戶端的服務引用設置設置我的集合Generic.List, 但是當我在客戶端運行此代碼得到System.ObjectDisposedException: cannot access a disposed object.

我在做什麼錯了?

+0

首先,請將您的字段更改爲適當的屬性。並使用適當的命名約定。另外,發佈服務器端代碼和Stacktrace。 –

+3

附註:可變結構[認爲有害](http://stackoverflow.com/questions/441309/why-are-mutable-structs-vil)。 – Blorgbeard

+0

我們需要一個完整的堆棧跟蹤。問題似乎在client.GetPassengers();調用,但是你沒有提供這個方法的代碼 – Oscar

回答

-1

看起來像客戶端代理對象正在處理或未正確初始化,請嘗試下面提到的代碼。

MyServiceClient client = null; 
using(clinet = new MyServiceClient()) 
{ 
    client.GetPassengers(); 
} 
+0

-1:WCF代理類是少數幾個不應使用'using'塊的地方之一。 –