C# 设置类以包含对象列表

C# 设置类以包含对象列表,c#,web-services,class,C#,Web Services,Class,我正在用C#设置一个类来保存我将从web服务调用中收到的响应。我使用RestSharp处理JSON数据的调用/解析 web服务文档将响应描述为: OUTPUT: JSON object similar to example below. { "response":"[success] or [failed]", "messages":"Process succeeded.", "logonkey":"[logon key]",

我正在用C#设置一个类来保存我将从web服务调用中收到的响应。我使用RestSharp处理JSON数据的调用/解析

web服务文档将响应描述为:

OUTPUT: JSON object similar to example below.
    {
        "response":"[success] or [failed]",
        "messages":"Process succeeded.",
        "logonkey":"[logon key]",
        "tokenkey":"[security token]",
        "reccount":"1",
        "filelist":
            {
            "fileid":"12345",
            "status":"N",
            "filename":"data.tar",
            "fulfilled":"2012-06-15"
        }
    }
我的问题是如何在类中定义filelist数组元素

我是这样想的:

public class Files
{
    public string Response { get; set; }
    public string Messages { get; set; }
    public string LogonKey { get; set; }
    public string TokenKey { get; set; }
    public int RecordCount { get; set; }
    public List<FileList>
}

public class FileList
{
    public string FileID { get; set; }
    public string Status { get; set; }
    public string Filename { get; set; }
    public DateTime Fulfilled { get; set; }
}
公共类文件
{
公共字符串响应{get;set;}
公共字符串消息{get;set;}
公共字符串LogonKey{get;set;}
公共字符串令牌密钥{get;set;}
公共int记录计数{get;set;}
公开名单
}
公共类文件列表
{
公共字符串FileID{get;set;}
公共字符串状态{get;set;}
公共字符串文件名{get;set;}
已完成公共日期时间{get;set;}
}
然而,我对“公开名单”的声明有一个问题


任何关于处理此场景的最佳方法的建议都将不胜感激。

JSON示例中的文件列表看起来不像对象列表。相反,它是一个单一的对象。 你可以试试

public class Files
{
    public string Response { get; set; }
    public string Messages { get; set; }
    public string LogonKey { get; set; }
    public string TokenKey { get; set; }
    public int RecordCount { get; set; }
    public FileList File   {get; set; }
}
public List<FileList> Files   = new List<FileList>();
如果您确定JSON中的文件列表实际上是对象列表,您可以尝试

public class Files
{
    public string Response { get; set; }
    public string Messages { get; set; }
    public string LogonKey { get; set; }
    public string TokenKey { get; set; }
    public int RecordCount { get; set; }
    public FileList File   {get; set; }
}
public List<FileList> Files   = new List<FileList>();
public List Files=new List();

您还忘了给它起名字,例如,试试这个

public List<FileList> MyFavouriteList {get;set;}. 
公共列表MyFavoriteList{get;set;}。

属性的声明类似于“访问修饰符”、“类型”、“标识符(或名称)”、“getter和setter”。

更确切地说,公共列表有什么问题?如上所述,代码将不会编译(之后出现意外的令牌错误)。我也无法添加{get;set;}元素(无效的令牌错误)。因为您还需要将getter和setter添加到该列表中。这会返回一个错误--无法解析符号get(或set),而且您忘记给它一个名称,例如,尝试此公共列表MyFavoriteList{get;set;}。属性的声明类似于“访问修饰符”、“类型”、“标识符(或名称)”、“getter和setter”。如果你愿意,我可以给你一篇文章,或者把它写成代码,就像一个答案一样。文件列表可能包含多个对象。在这种情况下,RecordCount将大于1,文件列表将包含多个对象。正如弗里曼在上面指出的,我忘了给这个物体命名。公共列表文件列表{get;set;}有效。如果使用类似于,List文件列表{get;set;}的属性,请确保在访问它们之前初始化它。