Condividi tramite


Procedura dettagliata: Aggiungere ricevitori di eventi di funzionalità

I ricevitori di eventi di funzionalità sono metodi che vengono eseguiti quando si verifica uno degli eventi correlati alle funzionalità seguenti in SharePoint:

  • Viene installata una funzionalità.

  • Viene attivata una funzionalità.

  • Una funzionalità viene disattivata.

  • Una funzionalità viene rimossa.

Questa procedura dettagliata illustra come aggiungere un ricevitore di eventi a una funzionalità in un progetto di SharePoint. Illustra le attività seguenti:

  • Creazione di un progetto vuoto con un ricevitore di eventi di funzionalità.

  • Gestione del metodo FeatureDeactivating .

  • Utilizzo del modello a oggetti del progetto SharePoint per aggiungere un annuncio all'elenco Annunci.

    Nota

    I nomi o i percorsi visualizzati per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti potrebbero essere diversi nel computer in uso. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per altre informazioni, vedere Personalizzare l'IDE.

Prerequisiti

Per completare questa procedura dettagliata, è necessario disporre dei componenti seguenti:

  • Edizioni supportate di Microsoft Windows e SharePoint.

  • Visual Studio.

Creare un progetto ricevitore di eventi di funzionalità

Creare prima di tutto un progetto per contenere il ricevitore di eventi di funzionalità.

Per creare un progetto con un ricevitore di eventi di funzionalità

  1. Nella barra dei menu scegliere File>nuovo>progetto per visualizzare la finestra di dialogo Nuovo progetto.

  2. Espandere il nodo SharePoint in Visual C# o Visual Basic e quindi scegliere il nodo 2010 .

  3. Nel riquadro Modelli scegliere il modello progetto di SharePoint 2010.

    Questo tipo di progetto viene usato per i ricevitori di eventi di funzionalità perché non hanno un modello di progetto.

  4. Nella casella Nome immettere FeatureEvtTest e quindi scegliere il pulsante OK per visualizzare la Personalizzazione guidata SharePoint.

  5. Nella pagina Specificare il sito e il livello di sicurezza per il debug immettere l'URL del sito del server SharePoint a cui si desidera aggiungere il nuovo campo personalizzato oppure usare il percorso predefinito (http://< nome> del sistema/).

  6. Nella sezione Qual è il livello di attendibilità per questa soluzione SharePoint? scegliere il pulsante di opzione Distribuisci come soluzione farm.

    Per altre informazioni sulle soluzioni in modalità sandbox e sulle soluzioni farm, vedere Considerazioni sulle soluzioni in modalità sandbox.

  7. Scegliere il pulsante Fine e quindi notare che una funzionalità denominata Feature1 viene visualizzata nel nodo Funzionalità .

Aggiungere un ricevitore di eventi alla funzionalità

Aggiungere quindi un ricevitore di eventi alla funzionalità e aggiungere il codice che viene eseguito quando la funzionalità viene disattivata.

Per aggiungere un ricevitore di eventi alla funzionalità

  1. Aprire il menu di scelta rapida per il nodo Funzionalità e quindi scegliere Aggiungi funzionalità per creare una funzionalità.

  2. Nel nodo Funzionalità aprire il menu di scelta rapida per Feature1 e quindi scegliere Aggiungi ricevitore eventi per aggiungere un ricevitore di eventi alla funzionalità.

    Verrà aggiunto un file di codice in Feature1. In questo caso, è denominato Feature1.EventReceiver.cs o Feature1.EventReceiver.vb, a seconda del linguaggio di sviluppo del progetto.

  3. Se il progetto è scritto in Visual C#, aggiungere il codice seguente all'inizio del ricevitore di eventi, se non è già presente:

    using System;
    
  4. La classe ricevitore di eventi contiene diversi metodi commentati che fungono da eventi. Sostituire il metodo FeatureDeactivating con quanto segue:

    public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
    {
        try
        {
            // Get reference to SharePoint site.
            SPSite site = new SPSite("http://localhost");
            SPWeb web = site.OpenWeb("/");
            // Get reference to Announcements list.
            SPList announcementsList = web.Lists["Announcements"];
    
            // Add new announcement to Announcements list.
            SPListItem oListItem = announcementsList.Items.Add();
            oListItem["Title"] = "Deactivated Feature: " + properties.Definition.DisplayName;
            oListItem["Body"] = properties.Definition.DisplayName + " was deactivated on: " + DateTime.Now.ToString();
            oListItem.Update();
    
        }
    
        catch (Exception e)
        {
            Console.WriteLine("Error: " + e.ToString());
        }
        
    }
    

Testare il ricevitore di eventi di funzionalità

Disattivare quindi la funzionalità per verificare se il metodo FeatureDeactivating restituisce un annuncio all'elenco Annunci di SharePoint.

Per testare il ricevitore di eventi di funzionalità

  1. Impostare il valore della proprietà Configurazione distribuzione attiva del progetto su Nessuna attivazione.

    L'impostazione di questa proprietà impedisce l'attivazione della funzionalità in SharePoint e consente di eseguire il debug dei ricevitori di eventi di funzionalità. Per altre informazioni, vedere Eseguire il debug di soluzioni SharePoint.

  2. Scegliere il tasto F5 per eseguire il progetto e distribuirlo in SharePoint.

  3. Nella parte superiore della pagina Web di SharePoint aprire il menu Azioni sito e quindi scegliere Sito Impostazioni.

  4. Nella sezione Azioni sito della pagina Impostazioni sito scegliere il collegamento Gestisci funzionalità del sito.

  5. Nella pagina Funzionalità scegliere il pulsante Attiva accanto alla funzionalità FeatureEvtTest Feature1.

  6. Nella pagina Funzionalità scegliere il pulsante Disattiva accanto alla funzionalità FeatureEvtTest Feature1 e quindi scegliere il collegamento Disattiva questa funzionalità di conferma per disattivare la funzionalità.

  7. Scegliere il pulsante Home .

    Si noti che un annuncio viene visualizzato nell'elenco Annunci dopo la disattivazione della funzionalità.