一个很有趣的case, 客户想知道在ItemCheckingIn的Event Handler中如何知道自己Check In的是Minor(Draft) version 还是Major(publish) version。
这是一个典型的ItemCheckingIn Event Handler的方法
public override void ItemCheckingIn(SPItemEventProperties properties)
{
//Your Code
}
如果比较properties.BeforeProperties和properties.AfterProperties,在SP1时,两个完全相同。就是说,你没有办法从这个Event Handler来判断,需要借助ItemCheckedIn。
在SP2(最早应该在2008年8月累计更新,没环境了,不完全肯定),properties.BeforeProperties和properties.AfterProperties有点区别了。
properties.BeforeProperties["vti_level"] = 255
properties.AfterProperties["vti_level"] = 255 / 1 / 2
AfterProperties["vti_level"] = 255, 说明是一个普通的Check In,
AfterProperties["vti_level"] = 1, 则说明是Check In 并且发布成为一个Major(publish) version。
如果启用了Content Approval 功能, AfterProperties["vti_level"] 可能会等于 2, 说明是Check In 并且发布成为一个Major(publish) version,但是还没有经过审核。