Исключение при программном копировании типа контента - PullRequest
0 голосов
/ 19 апреля 2010

Я получаю исключения при копировании типа контента из одной сети в другую:

foreach (SPContentType destinationWebCt in destinationWeb.ContentTypes) 
{ 
    destinationWeb.ContentTypes.Add(existingWebCt); 
    destinationWeb.Update(); 
} 

Существующий веб-сайт - это тип контента из другой сети, например /Веб-сайт. destinationWeb - это сеть, в которую я хочу скопировать тип контента, например, /Site/DestinationWeb.

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

Затем я решил заменить все «ContentTypes» на «AvailableContentTypes», но затем я получил SPException, говоря, что это столкновение не может быть изменено.

Так, как я могу скопировать тип контента в другой веб?

Спасибо.

1 Ответ

1 голос
/ 19 апреля 2010

Если вы хотите, чтобы тип контента был доступен в другом вебе, тогда должен иметь этот тип контента в коллекции типов контента сайта или в любом родительском вебе, который объединяет эти 2 сети.

Конечно, вы можете создать новый экземпляр SPContentType, скопировать все свойства и затем добавить его в другой веб-сайт, но тогда это совершенно другой тип контента, и он отделен - если вы вносите изменения в один CT, он не будет отражаться в другом,Так что это никоим образом не рекомендуется и нецелесообразно.

И свойство AvailableContentTypes возвращает все типы содержимого текущей веб-страницы и родительских сетей, но только для чтения типов содержимого , поэтому не допускает изменений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...