Gå til innhold

C#: Hvordan parse DateTime i Webservice selv?


Anbefalte innlegg

Jeg har denne metoden i en webservice:

[WebMethod]
public ReturnList GetList(string id, System.DateTime fromDate)

Dersom jeg skriver inn en ugyldig dato når jeg tester webservicen, får jeg opp en html-side med feilmelding og stacktrace. Ikke noe soap-message her, men en html-side generert av microsoft...

 

Hvordan kan jeg bli kvitt denne?

 

Jeg har lyst til å parse datoen selv, og sende tilbake et ReturList objekt med en tilpasset feilmelding. Men jeg vil ikke bruke string istedenfor dateTime, da jeg vil at feltet skal være dateTime i wsdl'en...

Lenke til kommentar
  • 1 måned senere...
Videoannonse
Annonse
Du kan jo eventuelt endre datatypen på fromDate-parameteret til string, og parse manuelt inni metoden. Da kan du bruke DateTime.TryParse() og behandle det akkurat slik du måtte ønske

 

Det var akkurat det jeg gjorde :) Fant ut at det er mulig å bruke DateTime og skrive kode som overstyrer Microsoft sin standard måte å behandle feil på. Men da må en manipulere selve soap-meldingene, og det hele virket litt innviklet..

Lenke til kommentar

Jeg skjønner ikke hvorfor du må gjøre noe som helst med SOAP meldingene her. Hvis du har en metode som tar imot en STRING i stedet for en DateTime så er det vel du, i den metoden, som håndterer dette. Har vel ingenting med SOAP å gjøre det så vidt jeg kan se

 

[WebMethod]
public ReturnList GetList(string id, string fromDate)
{
DateTime MottattDateTime;
if (DateTime.TryParse(fromDate, out MottattDateTime) == true)
	// Vips så har du konvertert en streng til DateTime
else
	// To many fingers on Keyboard Error!
			return NULL;
}

 

Så er det jo bare for deg å sjekke om du får en liste eller ikke. Eller du kan finne på en annen måte å informere mottaget på at dette var feil. Mange veier som fører frem her

Endret av HDSoftware
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...