سؤال

Please forgive the poor code and ignorance this is just a late night hack to test something.

Anyways I'm trying to use RESTSharp with WP7 but I'm hitting a hurdle which I unable to figure out.

Could someone please take a look?

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;
        }
    }
 }

This does not produce any errors but instead rubbish data which is the following

        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

but compare this to the acutally Json this is completly wrong

{"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}

Thanks in advance

هل كانت مفيدة؟

المحلول

DataMember attributes are ignored. Check out the Deserialization docs, or try Hammock.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top