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