私はSharePointアプリケーションを作成しており、一貫性と規則を維持するために、データアクセス用のAPIに相当するものを作成するためにいくつかの新しいことを試みています。
私はこれを前に見たことがありません、そしてそれは私にそれが悪いかもしれないと思わせます:)
コンストラクターをオーバーロードして、パラメーターとしてclass Post
のみ取得しました。次に、メソッドシグネチャにSPListItemCollectionを取得するSPListItem
ジェネリックリストが埋め込まれています。Post
より効率的なfor
ステートメントで項目をループします。これは、オブジェクトのキャスト方法を追加または変更する必要がある場合にPost
、単一のソースのクラス定義でそれを実行できることを意味します。
class Post
{
public int ID { get; set; }
public string Title { get; set; }
public Post(SPListItem item)
{
ID = item.ID;
Title = (string)item["Title"];
}
public static List<Post> Posts(SPListItemCollection _items)
{
var returnlist = new List<Post>();
for (int i = 0; i < _items.Count; i++) {returnlist.Add(new Post(_items[i]));}
return returnlist;
}
}
これにより、次のことが可能になります。
static public List<Post> GetPostsByCommunity(string communityName)
{
var targetList = CoreLists.SystemAccount.Posts(); //CAML emitted for brevity
return Post.Posts(targetList.GetItems(query)); //Call the constructor
}
これは悪い考えですか?