我有一个SharePoint 2007 MOSS实例,而且我正在进行实况调查。有多个开发人员,开发多个webpart并部署它们(使用VS2005 / 2008 SharePoint Extensions)。
我想也许我可以查看我网站“Web部件库”列表中的字段,然后查看“修改者”,但看起来开发人员的名字在某些不合适之处。盒子webparts不知何故,并且在我知道的是自定义开发的,他们说“系统帐户” - 所以在这个列表中查看该字段是不行的。
我想也许我可以看一下每个webpart被分配到的“组”,但看起来它们被任意地分配给许多不同的组 - 所以使用那条信息是不行的。
这是我的代码,我只是循环并获取所有webparts的名称。我可以在webparts列表项上访问任何属性,告诉我它是否是自定义开发的webpart?有什么方法可以区分自定义的webparts和开箱即用的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
答案 0 :(得分:1)
您是否尝试过导出webparts?单击webpart右上角的箭头,然后单击export。它将作为XML文件导出。查找元数据标签。 e.g:
<metaData>
<type name="Microsoft.SharePoint.Portal.WebControls.KPIListWebPart, Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
<importErrorMessage />
</metaData>
type属性将为您提供程序集信息。如果它是自定义webpart,则程序集名称应该大部分不是Microsoft.Sharepoint