Ich habe einen kleinen REST-Dienst, den ich über den HttpSelfHostServer (ASP.Net WebApi Beta) ausführe, aber habe einige Probleme beim Deserialisieren einiger Daten, die auf dem Server veröffentlicht werden. Die Methodensignatur ist wie folgt:HttpContent.ReadAsAsync Deserialisierungsproblem
public HttpResponseMessage PostServers(ServerType serverType)
Verfahren fein genannt werden, jedoch auf der Deserialisierung der Daten mit dem folgenden Code:
var servers = Request.Content.ReadAsAsync<List<ServerZoneInformation>>().Result;
...
eine IOException mit der Meldung ausgelöst wird, „Kann keinen Zugriff geschlossener Stream. ". Der gleiche Fehler tritt auf, wenn der Code über
XmlSerializer serializer = new XmlSerializer(typeof(List<ServerZoneInformation>));
var servers = (List<ServerZoneInformation>)serializer.Deserialize(Request.Content.ReadAsStreamAsync().Result);
...
zu deserialisieren versuchen Jedoch habe ich die Methode bekommen zu arbeiten, wenn ich folgendes verwenden:
XmlSerializer serializer = new XmlSerializer(typeof(List<ServerZoneInformation>));
string data = Request.Content.ReadAsStringAsync().Result;
using (MemoryStream ms = new MemoryStream(UTF8Encoding.UTF8.GetBytes(data)))
{
var servers = (List<ServerZoneInformation>)serializer.Deserialize(ms);
...
}
Bin ich somthing falsch in den ersten beiden Fällen zu tun, oder ist das ein Fehler im WebApi?
Hinweis: Ich habe dies noch nicht beim Hosting über IIS versucht.
Prost
Ben