У меня есть экземпляр SharePoint 2007 MOSS, и я выполняю миссию по установлению фактов. Было несколько разработчиков, которые разрабатывали несколько веб-частей и развертывали их (используя VS2005 / 2008 SharePoint Extensions).
Я подумал, что, может быть, я мог бы посмотреть на поля в списке "Галерея веб-частей" на моем сайте и посмотреть "Изменено", но похоже, что имя разработчика есть в некоторых из как-то пометить веб-части, и на тех, которые я знаю, они разрабатываются на заказ, они говорят «Системная учетная запись» - так что смотреть на это поле в этом списке не стоит.
Тогда я подумал, что, может быть, я мог бы взглянуть на «Группу», к которой была привязана каждая веб-часть, но похоже, что они были произвольно назначены многим различным группам - поэтому использовать эту часть информации не стоит.
Вот мой код, который я имею для того, чтобы просто просмотреть и получить имена всех веб-частей. Есть ли какое-либо свойство, к которому я могу получить доступ в элементах списка веб-частей, которое бы сообщало мне, является ли это веб-частью, разработанной пользователем? Есть ли способ отличить пользовательские веб-части от готовых? Есть ли другой способ сделать это?
#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