我正在尝试使用 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 类型的属性。一旦我删除了这个属性,它就解决了这个问题。感谢大家的帮助。
最佳答案
The following is a list of features not supported by WCF Test Client:
Types: Stream, Message, XmlElement, XmlAttribute, XmlNode, types that implement the IXmlSerializable interface, including the related XmlSchemaProviderAttribute attribute, and the XDocument and XElement types and the ADO.NET DataTable type.
Duplex contract.
Transaction.
Security: CardSpace , Certificate, and Username/Password.
Bindings: WSFederationbinding, any Context bindings and Https binding, WebHttpbinding (Json response message support).
来源:MSDN
检查 Msp.FavReadViews
和 Msp.DsReadIndicators
以确保它们符合要求。
关于c# - WCF 服务方法在 WCF 测试客户端中不可用,因为它使用类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8567849/