使用JSON.NET序列化公共属性

May*_*aya 2 c# wcf serialization json json.net

我正在使用JSON.NET实现将.NET对象序列化/反序列化为JS,反之亦然,所有工作正常,直到GetWCFData()在以下运行:

using Newtonsoft.Json;
using Newtonsoft.Json.Converters;

    public class WebLookup
    {
        WCFService.WCFServiceClient svc;
        IsoDateTimeConverter DateConverter = new IsoDateTimeConverter();


        List<WCFContract.Language> Languages { get; set; }
        List<WCFContract.Group> Groups { get; set; }
        List<WCFContract.User> Users { get; set; }

        public WebLookup()
        {
            DateConverter.DateTimeFormat = "dd/MM/yyyy";
            DateConverter.DateTimeStyles = System.Globalization.DateTimeStyles.AssumeLocal;
        }

        public string GetWCFData()
        {
            svc = new WCFService.WCFServiceClient();
            WebLookup weblookup = new WebLookup();
            weblookup.Languages = svc.GetWCFLanguages().ToList();
            weblookup.Groups = svc.GetWCFGroups().ToList();
            weblookup.Users = svc.GetWCFUsers().ToList();

            return JsonConvert.SerializeObject(weblookup, DateConverter);
        } 

    }
Run Code Online (Sandbox Code Playgroud)

成员Languages,Groups并且Users在调用WCF服务时成功填充,但 JsonConvert.SerializeObject(lookup, DateConverter)总是向客户端(Web浏览器)返回一个空的JSON字符串,这很奇怪,因为它在其他方面通常对我很好,唯一的区别是我在这里填充的WebLookup成员在类本身中声明为公共属性.

Sam*_*ara 5

语言,组和用户属性需要声明为公共成员才能通过JSON.NET或内置JavaScriptSerializer进行序列化,这在您的代码中不是这种情况.