2009-12-31 121 views
0

我出於某種原因傳遞對象時出現問題,我不知道爲什麼。我得到的對象引用未設置爲對象錯誤的實例。將自定義對象傳遞給Windows Workflow WCF服務

從我的客戶端應用程序

基本上我做一個Windows工作電話...

客戶端代碼

Workflow1Client client = new Workflow1Client(); 
ACME.Order newOrder = new ACME.Order(); 

newOrder.Property1 = "xyz"; 
//set all the other properties 

string status = client.GetData(newOrder); 
//**This is where object reference error occurs** 

代理期待

public string GetData(ACME.Order NewOrder) 
{ 
    return base.Channel.GetData(NewOrder); 
} 

工作流代碼

[ServiceContract] 
public interface IWorkflow1 
     { 
       [OperationContract] 
     string GetData(ACME.Order NewOrder); 
     // TODO: Add your service operations here 
    } 

我會很感激這方面的幫助。除了這個問題之外,發送一個Object(ACME.Order)的好習慣還是應該試圖以不同的方式解決這個問題?

感謝

回答

1

我遇到了這個我自己和我的情況下,它是自定義對象的序列化錯誤。爲了能夠通過WCF發送自定義對象,它應該具有[Serializable]屬性。要測試,請參閱是否可以將對象序列化爲XML文件。如果失敗,WCF轉移將不起作用。

希望有所幫助。

+0

謝謝Jerb我能夠得到這個工作。它與我的工作流中的ServiceOperationInfo有關。 – Kuruption 2010-01-01 05:08:39

+0

您也可以在數據類中使用[DataContract]屬性,並將[DataMember]屬性附加到要包含在序列化中的數據類的屬性上。這爲序列化的內容提供了更細粒度的控制。 – ajawad987 2010-01-04 23:45:24