我正在创建一个 SharePoint 应用程序,并且正在尝试一些新的东西来创建相当于 API 的数据访问以保持一致性和约定。
我以前没见过这个,这让我觉得它可能很糟糕:)
我已经重载了构造函数,class Post
只接受一个SPListItem
作为参数。然后我有一个嵌入的通用列表,Post
它在方法签名中采用 SPListItemCollection。
我以更有效的语句遍历项目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
}
这是一个坏主意吗?