Использование Sharepoint CSOM, как проверить наличие нулевого значения при получении типа контента по идентификатору - PullRequest
0 голосов
/ 12 мая 2019

Я пытаюсь найти тип контента по идентификатору сначала на текущем веб-уровне, если не найден, то я проверяю из корневого веб-сайта.Однако в текущем веб-сайте, если он не найден, я не знаю, как правильно проверить, был ли найден тип контента.Один из способов, который работает, заключается в следующем, но он вызывает исключение, и я хотел бы избежать такого подхода.

Как можно проверить, найден ли возвращаемый тип содержимого?

            ContentType cType =
            clientContext.Web.ContentTypes.GetById(contentType.Id);
            clientContext.Load(cType);
            clientContext.ExecuteQuery();
            try
            {
                if (cType.Id == null)
                {
                    cType = clientContext.Web.ContentTypes.GetById(contentType.Id);

                }
            }catch(Microsoft.SharePoint.Client.ServerObjectNullReferenceException nullException)
            {
                cType = clientContext.Site.RootWeb.ContentTypes.GetById(contentType.Id);
            }

1 Ответ

1 голос
/ 13 мая 2019

Каждый тип контента имеет имя и идентификатор, это необходимо для типа контента, проверьте, существует ли тип контента в текущем вебе, например:

       static void Main(string[] args)
        {
            ClientContext clientContext=new ClientContext("http://sp/");
            ContentType cType = null;
            try
            {
                    cType = clientContext.Web.ContentTypes.GetById("0x0101004B81B8917C303D47BEA5E576CB73DF88");
                    clientContext.Load(cType);
                    clientContext.ExecuteQuery();


                    if (!string.IsNullOrEmpty(cType.Name))
                    {
                        cType = clientContext.Web.ContentTypes.GetById("0x0120D520A808");

                    }
                    else
                    {
                        Console.WriteLine("Content Type not existed in current web.");
                    }
            }
            catch (Microsoft.SharePoint.Client.ServerObjectNullReferenceException nullException)
            {

            }
        }

enter image description here

cType не является нулевым, когда он вообще вызывается: enter image description here

...