我正在嘗試使用WCF測試客戶端來測試已構建的WCF服務。WCF服務方法在WCF測試客戶端中不可用,因爲它使用類型
該服務有一個方法「SubmitRequest」。
[OperationContract]
Response SubmitRequest(Request request);
當我加載了WCF測試客戶端,方法是灰色的消息「該操作未在WCF測試客戶端支持,因爲它使用類型WcfLibrary.Objects.Request
下面是類型定義,沒有人看到什麼不對?
[DataContract]
public class Request
{
[DataMember]
public string LoanNumber { get; set; }
[DataMember]
public string ClientCode { get; set; }
[DataMember]
public Region Region { get; set; }
[DataMember]
public RequestType RequestType { get; set; }
[DataMember]
public List<RequestParameter> RequestParameters { get; set; }
[DataMember]
public List<MspWebCallType> MspWebCallsForXmlRequest { get; set; }
[DataMember]
public Hashtable XmlRequestParameters { get; set; }
public Request(string loanNumber, string clientCode, Region region, RequestType requestType, List<RequestParameter> requestParameters)
{
LoanNumber = loanNumber;
ClientCode = clientCode;
Region = region;
RequestType = requestType;
RequestParameters = requestParameters;
}
}
[DataContract]
public class MspWebCallType
{
[DataMember]
public string WebService { get; set; }
[DataMember]
public string Operation { get; set; }
[DataMember]
public string Version { get; set; }
[DataMember]
public Hashtable Parameters { get; set; }
[DataMember]
public Msp.FavReadViews FAVReadViewIndicator { get; set; }
[DataMember]
public Msp.DsReadIndicators DSReadInidicator { get; set; }
}
[DataContract]
public enum Region
{
[EnumMember]
P2,
[EnumMember]
PROD
}
[DataContract]
public enum RequestType
{
[EnumMember]
None,
[EnumMember]
XmlRequest,
[EnumMember]
SomeOtherRequestType
}
[DataContract]
public struct RequestParameter
{
[DataMember]
public string ParameterName { get; set; }
[DataMember]
public string ParameterValue { get; set; }
}
感謝。
編輯瓦特/答案...
的操作不可通過WCF測試客戶端,因爲類型MspWebCallType具有Hashtable類型的屬性。一旦我刪除這個屬性,它解決了這個問題。感謝大家的幫助。
WSDL是否爲'Request'類引用了XSD? – 2011-12-19 21:43:29
您是否嘗試過:[OperationContract] [KnownType(typeof(Request))] Response SubmitRequest(Request request); – kd7 2011-12-19 21:51:34
問題:請求類實際上是在名稱空間WcfLibrary.Objects中嗎? – 2011-12-19 21:52:58