我正在尝试使用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; }
}
感谢。
附带答案的编辑...
由于MspWebCallType类型有一个Hashtable类型的属性,所以在WCF测试客户端上无法进行该操作。 一旦我删除了这个属性,问题就解决了。 感谢大家的帮助。