2011-10-12 38 views
0

我格式化添加到操作行爲之後:啓用IDispatchMessageFormatter後,我看到在服務空的參數的

public void ApplyDispatchBehavior(OperationDescription operationDescription, DispatchOperation dispatchOperation) 
    { 
     ServerMessageFormatter Formatter = new ServerMessageFormatter(); 
     dispatchOperation.Formatter = Formatter; 
    } 

在格式化我有空Deserialize方法,因爲我想使用缺省行爲

public void DeserializeRequest(System.ServiceModel.Channels.Message message, object[] parameters) 
    {} 

但在序列化

public System.ServiceModel.Channels.Message SerializeReply(System.ServiceModel.Channels.MessageVersion messageVersion, object[] parameters, object result) 
      { 
//some code 
      } 

問題是,使這個類,參數後在服務方法中總是顯示爲空,但在IDispatchMessageInspector類中,我發現參數已正確發送。我不知道爲什麼發生這種情況,我只添加這個消息格式器代碼,Deserialize的空類可能導致這種情況?

回答

1

如果您沒有在DeserializeRequest上提供自己的邏輯,則沒有默認行爲。您需要在ServerMessageFormater中手動引用現有的格式化程序和委託,或者提供自己的邏輯。

相關問題