gpt4 book ai didi

wcf - 如何使用 Sitecore.Data.Serialization.Manager.LoadItem(path,LoadOptions) 将项目恢复到 Sitecore?

转载 作者:行者123 更新时间:2023-12-04 21:58:26 24 4
gpt4 key购买 nike

我正在尝试使用 sitecore API 序列化和恢复 sitecore 项目。我创建了一个 WCF 应用程序来检索给定 ID 或 sitecore 路径 (/sitecore/content/home) 的项目名称,检索子项目名称的列表,这些项目的名称给定了 id 或路径。我还可以序列化内容树。

    public void BackupItemTree(string id)
{
Database db = Sitecore.Configuration.Factory.GetDatabase("master");
Item itm = db.GetItem(id);

Sitecore.Data.Serialization.Manager.DumpTree(itm);
}

上面的代码效果很好。运行后可以看到content tree已经序列化了。

但是,当我尝试使用以下方法恢复序列化项目时:

    public void RestoreItemTree(string path)
{
try
{
using (new Sitecore.SecurityModel.SecurityDisabler())
{
Database db = Sitecore.Configuration.Factory.GetDatabase("master");
Data.Serialization.LoadOptions opt = new Data.Serialization.LoadOptions(db);
opt.ForceUpdate = true;

Sitecore.Data.Serialization.Manager.LoadItem(path, opt);
//Sitecore.Data.Serialization.Manager.LoadTree(path, opt);
}
}
catch (Exception ex)
{
throw ex;
}
}

使用这段代码我没有得到任何错误。它运行,但如果我检查 SiteCore,它什么也没做。我已经使用 Office Core 示例进行了测试。我发送的路径可能是问题所在:

C:\inetpub\wwwroot\sitecoretest\Data\serialization\master\sitecore\content\Home\Standard-Items\Teasers\Our-Clients.item

C:\inetpub\wwwroot\sitecorebfahnestockinet\Data\serialization\master\sitecore\content\Home\Standard-Items\Teasers\Our-Clients

似乎两者都没有做任何事情。我更改了项目的预告片标题,并试图恢复到之前的状态,但每次更改仍然存在。

由于 SiteCore 文档非常有限,我们将不胜感激。

最佳答案

您始终可以使用 Reflector 检查 Sitecore 代码的工作方式,当您在后端单击“Revert Item”时会调用以下方法:

protected virtual Item LoadItem(Item item, LoadOptions options)
{
Assert.ArgumentNotNull(item, "item");
return Manager.LoadItem(PathUtils.GetFilePath(new ItemReference(item).ToString()), options);
}

在 LoadOptions 中,您可以指定是要覆盖(“还原项目”)还是仅更新(“更新项目”)。

有关详细信息,请参阅 Sitecore.Shell.Framework.Commands.Serialization.LoadItemCommand

关于wcf - 如何使用 Sitecore.Data.Serialization.Manager.LoadItem(path,LoadOptions) 将项目恢复到 Sitecore?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8363016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com