Simple helper function to get the GUID of a list from Sharepoint web services.
Note that in the code below I have a class level object pointing to the Lists.asmx web service called m_listService already established , but I have left in the code to establish this connection in the comments as an example.
string GetListContentTypeGuid(string listName, string listID, string contentTypeName)
{
string defaultGuid = "";
try
{
//ListsService.Lists listService = new ListsService.Lists();
//listService.Credentials = System.Net.CredentialCache.DefaultCredentials;
//XmlNode ndList = listService.GetList(fileInfo.m_listInfo.m_listName);
//XmlNode ndVersion = ndList.Attributes["Version"];
XmlNode contentTypes = m_listService.GetListContentTypes(listID, "anything");
// Loop through the fields
foreach (XmlNode node in contentTypes)
{
System.Diagnostics.Debug.Print(node.Attributes["Name"].Value.ToString());
if (node.Attributes["Name"].Value.ToString() == contentTypeName)
{
defaultGuid = node.Attributes["ID"].Value.ToString();
break;
}
}
}
catch (Exception ex)
{
throw new Exception("ERROR: Reading content types from target site.\r\n"
+ ex.Message + "\r\nDetails: " + ex.InnerException + "\r\n" +
"Check the settings file to ensure that the list settings match the target site.", ex);
}
return defaultGuid;
}