Durante la creazione di un servizio di ripristino WCF, ho notato che non tutti i parametri del mio servizio Web stanno entrando nella mia implementazione.Non tutti i parametri nel contratto di dati WCF passano attraverso la chiamata al servizio Web
Ecco l'interfaccia:
[ServiceContract(Namespace="http://example.com/recordservice")]
public interface IBosleySchedulingServiceImpl
{
[OperationContract]
[WebInvoke(UriTemplate = "Record/Create",
RequestFormat = WebMessageFormat.Xml,
ResponseFormat = WebMessageFormat.Xml,
BodyStyle = WebMessageBodyStyle.Bare, Method = "POST")]
string CreateRecord(Record record);
}
[DataContract(Namespace="http://example.com/recordservice")]
public class Appointment
{
[DataMember]
public int ResponseType { get; set; }
[DataMember]
public int ServiceType { get; set; }
[DataMember]
public string ContactId { get; set; }
[DataMember]
public string Location { get; set; }
[DataMember]
public string Time { get; set; }
}
sto passando questo XML in:
<Appointment xmlns="http://ngs.bosley.com/BosleySchedulingService">
<ContactId>1123-123</ContactId>
<Location>Fresno</Location>
<Time>2012-05-05T08:30:00</Time>
<ResponseType>45</ResponseType>
<ServiceType>45</ServiceType>
</Appointment>
Nel mio servizio, sto solo l'emissione dei valori in un log in modo da poter verificare i valori stanno arrivando per il momento:
logger.Debug("ContactId: " + appointment.ContactId);
logger.Debug("Time Field: " + appointment.Time);
logger.Debug("Location: " + appointment.Location);
logger.Debug("Response Type: " + Convert.ToInt32(appointment.ResponseType));
logger.Debug("ServiceType: " + Convert.ToInt32(appointment.ServiceType));
Tuttavia, nel mio output, i valori interi si stanno verificando come lattimi:
ContactId: 1123-123
Time Field: 2012-05-05T08:30:00
Location: Fresno
Response Type: 0
ServiceType: 0
Quando rimuovo le corde dal DataContract e l'implementazione del servizio, i valori interi vengono attraverso senza un problema.
Response Type: 45
ServiceType: 45
Sono completamente confuso da questo e qualsiasi aiuto sarebbe molto apprezzato.
Qualsiasi motivo specifico per cui si converte in modo esplicito i propri numeri interi in Int32? – Satyajit
Iniziamo con la dimenticanza della conversione in numero intero, e solo l'output di 'ResponseType' e' ServiceType' nel logger come stringhe nude. –
ConvertTo era solo un tentativo di determinare se i miei valori venivano persi a causa di un cast non corretto nella parte dell'implementazione del servizio. Ora che posso ottenere i valori usando la risposta qui sotto, lascerò che utilizzino il metodo ToString come faranno normalmente. Grazie comunque. –