新写了个定时器作业,用脚步部署,激活时提示未将对象引用到实例化。
调试模式跟踪了一下代码,发现 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这句话。看到沙舟的博文,成功解决。在此进行记录,以备以后开发的不时之需。