Am fost de lucru cu unele cod că cineva predat-o la mine pentru o activitate de cronometrare. El nu ar fi furnizate codul de activare reală caracteristică, aşa că a trebuit să-l scrie, desigur. Am profitat de Andrew Connell celebru blog post pe această temă.
Eu sunt, folosind Visual Studio 2010 şi implementare păstrate în lipsa cu o eroare "Eroare în implementare pas"Adăugare soluție": Obiectul de referinţă nu setat la o instanţă a unui obiect."
Am fost luaţi codul lui prea literal. Am fost definire caracteristica la nivel de aplicatie web, ca:
Ca rezultat al, proprietăţi care sunt trimise la receptor sunt la aplicația web, nu o colecție de site-ul. În cele din urmă, codul Arată astfel:
publice suprascriu nule FeatureActivated(Proprietăți SPFeatureReceiverProperties)
{// Nu fac următoarele cu web app scoped caracteristici, Aceasta conduce la disperare
// Site-ul SPSite = proprietăţi.Feature.Parent ca SPSite;SPWebApplication wa = proprietăţi.Feature.Parent ca SPWebApplication;
Dacă (WA == null) arunca nouă excepţie("webapp2 este nul.");
foreach (SPJobDefinition locuri de muncă în wa.JobDefinitions)
{încercaţi
{
Dacă (locuri de muncă.Numele == List_JOB_NAME)locuri de muncă.Ştergeţi();
}
prinde (Excepţie e)
{
arunca nouă excepţie("gabarit 2");
} // prinde excepţie e
}// instalaţi locuri de muncă
WeatherForecastTimerJob weatherForecastTimerJob =
noi WeatherForecastTimerJob(List_JOB_NAME, WA);Programul de SPMinuteSchedule = nou SPMinuteSchedule();
Programul.BeginSecond = 0;
Programul.EndSecond = 59;
Programul.Interval = 5;
weatherForecastTimerJob.Schedule = programul;
weatherForecastTimerJob.Update();}
Cheia take-away este că atunci când caracteristica este scoped la un web app, SPFeatureReceiverProperties care SharePoint trece la receptorul caracteristică a web app nivel parametri. Andrew pe vechiul blog intrare îşi asumă ea este scoped la colecția de site-ul.
</scop>
Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin