猛梦源

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

新写了个定时器作业,用脚步部署,激活时提示未将对象引用到实例化。

调试模式跟踪了一下代码,发现 SPSite site = properties.Feature.Parent as SPSite; 中properties.Feature.Parent能得到值,但是site总是得到null,百思不得其解。

然后尝试激活以前写的正常部署过多定时器作业,报错依旧,怀疑自己的环境出来问题,最后无果。

突然在网上看到别人写的一段代码,于是想到properties.Feature.Parent只是个object,不一定是site,也可能是web,于是改进代码如下:

            SPSite site;
            if (properties.Feature.Parent is SPWeb)
            { site = ((SPWeb)properties.Feature.Parent).Site; }
            else
            { site = (SPSite)properties.Feature.Parent; }

果然一切正常~

------------------------------------------------------------------------------------------------------------------------------------------------------------

以上为沙舟的帖子

-------------------------------------------------------------------------------------------------------------------------------------------------------------

我在调试的时候,vs2010报错信息为:(错误 1 部署步骤“激活功能”中出现错误: 未将对象引用设置到对象的实例。)

也是properties.Feature.Parent as SPSite这句话。看到沙舟的博文,成功解决。在此进行记录,以备以后开发的不时之需。

posted on 2012-10-15 16:48  猛梦源  阅读(1033)  评论(0编辑  收藏  举报