Restsharp und WP7 zurückgeben, die nicht korrekte Daten zurückgeben?
-
27-10-2019 - |
Frage
Bitte vergib dem schlechten Code und Unwissenheit, dass dies nur ein Late -Night -Hack ist, um etwas zu testen.
Wie auch immer, ich versuche, Restsharp mit WP7 zu verwenden, aber ich schlage eine Hürde, die ich nicht herausfinden kann.
Könnte jemand bitte einen Blick darauf werfen?
Code:
namespace McMyAdmin.Data
{
[DataContract]
public class Status
{
private bool isRunning;
private bool isReady;
private int ram;
private int maxRam;
private int users;
private int maxusers;
private DateTime startDateTime;
private int cpuUsage;
[DataMember(Name = "running")]
public bool IsRunning { get { return isRunning; } set { isRunning = value; } }
[DataMember(Name = "ready")]
public bool IsReady { get { return isReady; } set { isReady = value; } }
[DataMember(Name = "ram")]
public int Ram { get { return ram; } set { ram = value; } }
[DataMember(Name = "maxram")]
public int MaxRam { get { return maxRam; } set { maxRam = value; } }
[DataMember(Name = "users")]
public int Users { get { return users; } set { users = value; } }
[DataMember(Name = "maxusers")]
public int MaxUsers { get { return maxusers; } set { maxusers = value; } }
[DataMember(Name = "starttime")]
public DateTime StartDateTime { get { return startDateTime; } set { startDateTime = value; } }
[DataMember(Name = "cpuusage")]
public int CPUUsage { get { return cpuUsage; } set { cpuUsage = value; } }
public Status GetStatus()
{
var webclient = new RestClient
{
BaseUrl = "http://localhost:8080",
Authenticator = new HttpBasicAuthenticator("admin","xxxxxxxx")
};
var request = new RestRequest("data.json", Method.GET);
request.AddParameter("req", "status");
Status test = new Status();
var sd = webclient.ExecuteAsync<Status>(request, (response) =>
{
test.isRunning = response.Data.isRunning;
test.isReady = response.Data.isReady;
test.Ram = response.Data.Ram;
test.MaxRam = response.Data.MaxRam;
test.Users = response.Data.Users;
test.MaxUsers = response.Data.MaxUsers;
test.StartDateTime = response.Data.StartDateTime;
test.CPUUsage = response.Data.CPUUsage;
});
return test;
}
}
}
Dies erzeugt keine Fehler, sondern stattdessen Mülldaten, die die folgenden sind
CPUUsage 0 int
IsReady false bool
IsRunning false bool
MaxRam 0 int
MaxUsers 0 int
Ram 0 int
startDateTime {1/1/0001 12:00:00 AM} System.DateTime
Users 0 int
Vergleichen Sie dies jedoch mit dem akutallischen JSON. Dies ist völlig falsch
{"status":200,"running":true,"ready":true,"stopping":false,"failed":false,"failmsg":"","maxram":1024,"users":0,"maxusers":8,"userinfo":{},"time":"2011-12-03 23:46:54","ram":"241","starttime":"12/03/2011 17:32:04","cpuusage":0}
Danke im Voraus
Lösung
DataMember
Attribute werden ignoriert. Probier das aus Deserialisierungsdokumente, oder Versuche Hängematte.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow