FeatureActivated de Job cronometrul şi caracteristica de aplicare

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:

image

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 Zâmbet
    // 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>

Aboneaza-te la blog-ul meu.

Urmaţi-mă pe Twitter, la http://www.twitter.com/pagalvin

lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate *