新写了个定时器作业,用脚步部署,激活时提示未将对象引用到实例化。
调试模式跟踪了一下代码,发现 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; }
果然一切正常~