Freigeben über


Exemplarische Vorgehensweise: Hinzufügen von Funktionsereignisempfängern

Funktionsereignisempfänger sind Methoden, die ausgeführt werden, wenn eines der folgenden featurebezogenen Ereignisse in SharePoint auftritt:

  • Ein Feature wird installiert.

  • Ein Feature wird aktiviert.

  • Ein Feature wird deaktiviert.

  • Ein Feature wird entfernt.

In dieser exemplarischen Vorgehensweise wird das Hinzufügen eines Ereignisempfängers zu einem Feature in einem SharePoint-Projekt veranschaulicht. Dabei werden die folgenden Aufgaben veranschaulicht:

  • Erstellen eines leeren Projekts mit einem Funktionsereignisempfänger

  • Verwenden der FeatureDeactivating-Methode

  • Verwenden des SharePoint-Projektobjektmodells zum Hinzufügen einer Ankündigung zur Ankündigungsliste

    Hinweis

    Auf Ihrem Computer werden möglicherweise andere Namen oder Speicherorte für die Benutzeroberflächenelemente von Visual Studio angezeigt als die in den folgenden Anweisungen aufgeführten. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Personalisieren der IDE.

Voraussetzungen

Zum Abschließen dieser exemplarischen Vorgehensweise benötigen Sie Folgendes:

  • Unterstützte Editionen von Microsoft Windows und SharePoint.

  • Visual Studio.

Erstellen eines Funktionsereignisempfänger-Projekts

Erstellen Sie zunächst ein Projekt, das den Funktionsereignisempfänger enthält.

So erstellen Sie ein Projekt mit einem Funktionsereignisempfänger

  1. Wählen Sie in der Menüleiste Datei>Neu>Projekt aus, um das Dialogfeld Neues Projekt anzuzeigen.

  2. Erweitern Sie unter Visual C# oder Visual Basic den Knoten SharePoint, und wählen Sie dann den Knoten 2010 aus.

  3. Wählen Sie im Bereich Vorlagen die Vorlage SharePoint 2010-Projekt aus.

    Sie verwenden diesen Projekttyp für Funktionsereignisempfänger, da keine Projektvorlage vorhanden ist.

  4. Geben Sie in das Feld NameFeatureEvtTest ein, und wählen Sie dann die Schaltfläche OK aus, um den Assistent zum Anpassen von SharePoint anzuzeigen.

  5. Geben Sie auf der Seite Website und Sicherheitsebene für Debuggen angeben die URL für die SharePoint-Serversite ein, der Sie das neue benutzerdefinierte Feldelement hinzufügen möchten, oder verwenden Sie den Standardspeicherort (http://<system name>/).

  6. Wählen Sie im Abschnitt Wie lautet die Vertrauensebene für diese SharePoint-Lösung? die Optionsschaltfläche Als Farmlösung bereitstellen aus.

    Weitere Informationen über Sandkastenlösungen im Vergleich zu Farmlösungen finden Sie unter Überlegungen zu Sandkastenlösungen.

  7. Wählen Sie die Schaltfläche Fertig stellen aus, und beachten Sie dann, dass unter dem Knoten Features ein Feature mit dem Namen „Feature1“ erscheint.

Hinzufügen eines Ereignisempfängers zum Feature

Fügen Sie als Nächstes dem Feature einen Ereignisempfänger hinzu, und fügen Sie Code hinzu, der ausgeführt wird, wenn das Feature deaktiviert wird.

So fügen Sie dem Feature einen Ereignisempfänger hinzu

  1. Öffnen Sie das Kontextmenü für den Features-Knoten, und wählen Sie anschließend Feature hinzufügen aus, um ein Feature zu erstellen.

  2. Öffnen Sie unter dem Knoten Features das Kontextmenü für Feature1, und wählen Sie dann Ereignisempfänger hinzufügen aus, um dem Feature einen Ereignisempfänger hinzuzufügen.

    Dadurch wird eine Codedatei unter Feature1 hinzugefügt. In diesem Fall wird es entweder Feature1.EventReceiver.cs oder Feature1.EventReceiver.vb- genannt, je nach Entwicklungssprache Ihres Projekts.

  3. Wenn Ihr Projekt in Visual C# geschrieben wurde, fügen Sie oben im Ereignisempfänger den folgenden Code hinzu, falls er nicht bereits vorhanden ist:

    using System;
    
  4. Die Ereignisempfängerklasse enthält mehrere auskommentierte Methoden, die als Ereignisse fungieren. Ersetzen Sie die FeatureDeactivating-Methode durch Folgendes:

    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());
        }
        
    }
    

Testen des Funktionsereignisempfängers

Deaktivieren Sie als Nächstes das Feature, um zu testen, ob die FeatureDeactivating-Methode eine Ankündigung an die SharePoint-Ankündigungsliste ausgibt.

So testen Sie den Funktionsereignisempfänger

  1. Legen Sie den Wert der Eigenschaft Active Deployment Configuration des Projekts auf Keine Aktivierung fest.

    Wenn Sie diese Eigenschaft festlegen, wird verhindert, dass das Feature in SharePoint aktiviert wird, und Sie können Funktionsereignisempfänger debuggen. Weitere Informationen finden Sie unter Debuggen von SharePoint-Lösungen.

  2. Drücken Sie F5, um das Projekt auszuführen und in SharePoint bereitzustellen.

  3. Öffnen Sie oben auf der SharePoint-Webseite das Menü Websiteaktionen, und wählen Sie dann Websiteeinstellungen aus.

  4. Wählen Sie im Abschnitt Websiteaktionen der Seite Websiteeinstellungen den Link Websitefeatures verwalten aus.

  5. Wählen Sie auf der Seite Features die Schaltfläche Aktivieren neben dem Feature FeatureEvtTest Feature1 aus.

  6. Wählen Sie auf der Seite Features die Schaltfläche Deaktivieren neben dem Feature FeatureEvtTest Feature1 aus, und wählen Sie dann den Bestätigungslink Dieses Feature deaktivieren zum Deaktivieren des Features aus.

  7. Wählen Sie die Schaltfläche Startseite aus.

    Beachten Sie, dass eine Ankündigung in der Liste Ankündigungen angezeigt wird, nachdem das Feature deaktiviert wurde.