以编程方式复制内容类型时的异常

时间:2010-04-19 04:16:46

标签: sharepoint sharepoint-2007

将内容类型从一个网页复制到另一个网页时,我遇到异常:

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

existingWebCt是来自其他网络的内容类型,例如/网站/网页。 destinationWeb是我希望将内容类型复制到例如的网页。 /站点/ DestinationWeb。

我收到了SPException,其中说内容类型不能在其范围之外添加。

然后我决定将所有“ContentTypes”替换为“AvailableContentTypes”,但后来我得到了SPException,说这个collcetion无法修改。

那么如何将内容类型复制到另一个网站呢?

感谢。

1 个答案:

答案 0 :(得分:1)

如果您希望内容类型在其他网络中可用,则您必须此网站内容类型集合中的内容类型或这两个网络共有的任何父网站。

你可以,当然,创建新的SPContentType实例,复制所有属性,然后将其添加到另一个网站,但它是一个完全不同的内容类型然后它是分开的 - 如果你对一个CT进行更改,它将不会反映在另一个。所以这是推荐和有用的。

AvailableContentTypes属性返回当前Web和父网站的所有内容类型,但是read-only content types因此不允许修改。