我试图弄清楚如何在自定义后端中检查组件是否为空(例如在Tridion中找不到)。除了捕获错误之外,我只是看不到如何检查它。

Component comp = (Component)session.GetObject(base.ComponentUri);

if (component != null)
{
    bool isCheckedOut = component.IsCheckedOut;
}
else
{
    // how do I get in here!
}

我100%确保uri是正确的('tcm:113-438134'),并且100%确保Tridion中没有带有该URI的项目。
上面的代码将在component.IsCheckedOut上引发错误:
The item tcm:113-438134-16 does not exist.

如何检查Tridion物品的存在?
我尝试过将类型转换放在最后,但并没有太大帮助:
Component comp = session.GetObject(base.ComponentUri) as Component;

而且我尝试过完全不进行强制转换,而是使用IdentifiableObject,这也没有任何区别。
有人知道该怎么做吗?

最佳答案

这是因为Tridion的延迟加载-如果URI似乎有效,它将永远不会返回空对象。您可以使用session.IsExistingObject(TcmUriOrWebdavUrl)来检查对象是否存在。

和...

我确定您正在期待...



您不能将TOM.NET API用于除模板和事件系统以外的其他进程。请改用Core Service API。

09-30 16:02
查看更多