私は SharePoint 2007 MOSS インスタンスを持っており、事実調査を行っています。複数の開発者がいて、複数の Web パーツを開発して展開しています (VS2005/2008 SharePoint 拡張機能を使用)。
自分のサイトの「Web パーツ ギャラリー」リストのフィールドを見て、「変更者」で見ることができるのではないかと思ったのですが、開発者の名前が既製の Web パーツの一部にあるようです。 、カスタム開発されていることがわかっているものでは、「システムアカウント」と表示されているため、このリストのそのフィールドを見ることはできません.
次に、各 Web パーツが割り当てられた「グループ」を確認できるのではないかと考えましたが、一貫性を欠いて多くの異なるグループに恣意的に割り当てられているようです。そのため、その情報を使用することはできません。
これは、ループしてすべての Web パーツの名前を取得するためのコードです。カスタム開発された Web パーツであるかどうかを教えてくれる、Web パーツのリスト項目でアクセスできるプロパティはありますか? カスタム Web パーツと既成の Web パーツを区別する方法はありますか? これを行う別の方法はありますか?
#region Misc Site Collection Methods
public static List<string> GetAllWebParts(string connectedSPInstanceUrl)
{
List<string> lstWebParts = new List<string>();
try
{
using (SPSite site = new SPSite(connectedSPInstanceUrl))
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists["Web Part Gallery"];
foreach (SPListItem item in list.Items)
{
lstWebParts.Add(item.Name);
}
}
}
}
catch (Exception ex)
{
lstWebParts.Add("Error");
lstWebParts.Add("Message: " + ex.Message);
lstWebParts.Add("Inner Exception: " + ex.InnerException.ToString());
lstWebParts.Add("Stack Trace: " + ex.StackTrace);
}
return lstWebParts;
}
#endregion