SharePoint 2007 – Identificare il tipo di oggetto tramite la URL

Mi sono trovato ad affrontare un problema che non mi era mai capitato in tanti anni: data una determinata URL, identificare il tipo di oggetto SharePoint cui si riferisce.

Ho deciso così di scrivere una funzione che si occupasse proprio di questo:

public SPDeploymentObjectType GetTypeFromUrl(string url)

{

      using (SPSite site = new SPSite(url))

      {

            if (url.Equals(site.Url, StringComparison.OrdinalIgnoreCase))

                  return SPDeploymentObjectType.Site;

 

            using (SPWeb web = site.OpenWeb())

            {

                  if (url.Equals(web.Url, StringComparison.OrdinalIgnoreCase))

                        return SPDeploymentObjectType.Web;

 

                  SPList list = web.GetList(url);

                  if (list != null)

                  {

                        string objRelativeUrl = url.Substring(web.Url.Length + 1);

                        if (objRelativeUrl.Equals(list.RootFolder.Url, StringComparison.OrdinalIgnoreCase))

                              return SPDeploymentObjectType.List;

                  }

 

                  object obj = web.GetObject(url);

 

                  if (obj is SPFile)

                        return SPDeploymentObjectType.File;

                  else if (obj is SPFolder)

                        return SPDeploymentObjectType.Folder;

                  else if (obj is SPListItem)

                        return SPDeploymentObjectType.ListItem;

 

            }

      }

 

    return SPDeploymentObjectType.Invalid;

}

 

Technorati Tags: SharePoint

posted @ martedì 9 novembre 2010 12:21

Print
Comments have been closed on this topic.
«dicembre»
domlunmarmergiovensab
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234