jQuery を使用して、ページ メソッドから JSON オブジェクトを取得しています。SubSonic を使用する DAL があり、SubSonic で生成されたクラスから作成されたオブジェクトを返すと、パイプが詰まります。:) ご存じのように、すべてのパブリック プロパティはシリアル化されます。このアプリケーションには別のビジネス層は必要ありません。なぜなら、このアプリケーションは小さく、読み取り操作に重点を置いており、さらに別の層はやり過ぎのように思えるからです。SubSonic の肥大化したオブジェクト (機密情報も含まれている可能性があります) のダウンロードを回避し、別のレイヤーの構築を回避するために、次のようにオブジェクトのリストを返すようにしました。
[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;
}
それは機能し、見返りに素敵な JSON オブジェクトを取得します (DateTime 値は無視します):
[{"FileId":1,"ApplicantFirstName":"Paweł","ApplicantLastName":"Krakowiak","UploadDate":"\/Date(1235656448387
)\/"}]
これは良いアプローチですか?私は心配していますList<object>- それは言うよりも悪いList<SomeDomainObjectです >? パフォーマンス?他の何か?
これは .NET 2.0 です。3.5 の機能は使用できません。少なくとも匿名型は機能します...