我有一個SharePoint 2007 MOSS實例,我正在進行實況調查。有多個開發人員,開發多個Web部件並進行部署(使用VS2005/2008 SharePoint擴展)。以編程方式判斷已部署的Web部件是否是本機自帶的MOSS或自定義開發的部件?
我想也許我可以看看我的網站中的「Web部件庫」列表中的字段,並查看「修改者」,但它看起來像是一個開發人員的名字是在某些out-of-the -box webparts以某種方式,並且我知道的是自定義開發的,他們說「系統帳戶」 - 所以在這個列表中查看該字段是不行的。
我想那麼也許我可以看看每個webpart被分配到的「Group」,但看起來他們被任意地分配給了許多不同的組,不一致 - 所以使用這些信息是不行的。
這是我的代碼,我只是循環瀏覽並獲取所有webparts的名稱。是否有任何屬性可以訪問列表項目的webparts,它會告訴我它是否是一個自定義開發的webpart?任何方式來區分自定義的webparts和開箱即用的?有沒有另一種方法來做到這一點?
#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
有一個函數GetAllWebParts返回的異常字符串列表有點......我沒有適當的名稱。 而你可以使用ex.ToString()來返回所有的信息。 – 2010-05-15 09:06:47