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

War es hilfreich?

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
scroll top