feature激活时提示“未将对象引用到实例化”

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

调试模式跟踪了一下代码,发现 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; }

果然一切正常~

posted @ 2011-10-26 09:40  学途  阅读(429)  评论(2编辑  收藏  举报