Próbuję użyć klienta testowego WCF do przetestowania usługi WCF, którą zbudowałem.Metoda usługi WCF jest niedostępna w kliencie testującym WCF, ponieważ używa typu
Usługa ma jedną metodę "SubmitRequest".
[OperationContract]
Response SubmitRequest(Request request);
Kiedy załadować górę testowego klienta WCF, metoda jest nieaktywna z komunikatem „Ta operacja nie jest obsługiwana w Klienta WCF testu, ponieważ używa typ WcfLibrary.Objects.Request
Poniżej definicja typu, czy ktoś zobaczyć coś złego?
[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; }
}
Dzięki.
EDIT w/odpowiedzi ...
Operacja nie była dostępna za pośrednictwem klienta testowego WCF, ponieważ typ MspWebCallType miał właściwość typu Hashtable. Po usunięciu tej właściwości naprawiono problem. Dzięki za pomoc wszystkich.
Czy WSDL odwołuje się do XSD dla klasy "Żądanie"? –
Czy próbowałeś: [OperationContract] [KnownType (typeof (Request))] Response SubmitRequest (Żądanie żądania); – kd7
Pytanie: Czy twoja klasa Request faktycznie znajduje się w przestrzeni nazw WcfLibrary.Objects? –