C# 从页面方法返回自定义对象列表的快速方法,无需单独的BLL

C# 从页面方法返回自定义对象列表的快速方法,无需单独的BLL,c#,json,.net-2.0,subsonic,C#,Json,.net 2.0,Subsonic,我使用jQuery从页面方法检索JSON对象。我有一个使用亚音速的DAL,如果我返回从亚音速生成的类创建的对象,我将阻塞管道。:)你知道,所有的公共属性都会被序列化。我不想为这个应用程序设置一个单独的业务层,因为它很小,主要用于读取操作,而另一个层似乎是一个多余的功能。为了避免下载一些亚音速膨胀的对象(可能还有敏感信息)并避免构建单独的层,我尝试返回一个对象列表,如下所示: [WebMethod] public static List<object> GetFiles() {

我使用jQuery从页面方法检索JSON对象。我有一个使用亚音速的DAL,如果我返回从亚音速生成的类创建的对象,我将阻塞管道。:)你知道,所有的公共属性都会被序列化。我不想为这个应用程序设置一个单独的业务层,因为它很小,主要用于读取操作,而另一个层似乎是一个多余的功能。为了避免下载一些亚音速膨胀的对象(可能还有敏感信息)并避免构建单独的层,我尝试返回一个对象列表,如下所示:

[WebMethod]
public static List<object> GetFiles()
{
    FileCollection collection = DB
        .Select()
        .From(DataAccess.File.Schema)
        .ExecuteAsCollection<FileCollection>();

    List<object> files = new List<object>(collection.Count);

    foreach (DataAccess.File file in collection)
    {
        files.Add(new {
                          file.FileId,
                          file.ApplicantFirstName,
                          file.ApplicantLastName,
                          file.UploadDate
                      }
        );
    }

    return files;
}
这是一个好方法吗?我担心
列表
——这比返回一个
列表更糟糕吗?演出还有别的吗


这是.NET2.0,我不能使用3.5功能。至少匿名类型是有效的…

最大的建议可能是将其设置为“集合”而不是列表,但对于一个简单的webservice返回,这并没有什么大不了的,因为该建议通常在对象仍位于.NET程序集中的环境中


我认为它也很容易阅读。

在这种情况下使用
List
而不是
List
的唯一缺点是,当直接从.net代码调用
GetFiles
方法时,会失去强类型访问权限。

看起来我的方法没有问题。我所要做的就是将一个JSON对象返回给调用客户端(浏览器)以更新UI。这个应用程序执行99%的读取操作,所以我对它很满意。实际上,我开始添加一个服务和域(我把我的业务实体放在这里)层,但我要把它们扔掉。我真的尽力让这个应用程序保持简单,不添加我不需要的东西。

谢谢。我不需要在.NET中的任何地方使用该方法,它的唯一目的是将一些数据返回到客户端,因此看起来列表就可以了。
[{"FileId":1,"ApplicantFirstName":"Paweł","ApplicantLastName":"Krakowiak","UploadDate":"\/Date(1235656448387
)\/"}]