use*_*019 2 tridion tridion-2011
我正在为CheckOutEventArgs添加事件处理程序,并且我正在尝试获取结帐用户详细信息.以下是我的代码.
public void Subscribe()
{
EventSystem.Subscribe<Page, CheckOutEventArgs>(PageCheckOutWarning,
EventPhases.Initiated);
EventSystem.Subscribe<Component, CheckOutEventArgs>(ComponentCheckOutWarning,
EventPhases.Initiated);
}
private void ComponentCheckOutWarning(Component component,
CheckOutEventArgs args, EventPhases phase)
{
logdetails("Checkout User-->" + component.CheckOutUser.Title.ToString());
}
Run Code Online (Sandbox Code Playgroud)
当我尝试签出组件/页面时,我在Tridion Explorer错误消息框中收到此错误.
你调用的对象是空的
您已订阅Initiated
阶段,此phse项目尚未签出,因此没有CheckOutUser
.您应该订阅一些后期阶段.
另外,我不知道你的代码在做什么,但你可能会考虑订阅一些泛型类,比如VersionedItem
包含组件和页面.
再一次,不知道你的想法,但SubscribeAsync
如果你想要警告,请看一下方法.这样它将执行得更快.
如果您仍想在启动阶段了解用户 - 您可以从会话中获取该用户:
component.Session.User.Title
您可以订阅VersionedItem,然后在事件处理程序中执行:
private void CheckOutWarning(VersionedItem item, CheckOutEventArgs args, EventPhases phase)
{
if (item.GetType().Name == "Component" || item.GetType().Name == "Page")
{
}
}
Run Code Online (Sandbox Code Playgroud)
你想要警告,还是想要阻止CheckOut?
归档时间: |
|
查看次数: |
158 次 |
最近记录: |