Exemplarische Vorgehensweise: Hinzufügen von Funktionsereignisempfängern

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

  • Eine Funktion wird installiert.

  • Eine Funktion wird aktiviert.

  • Eine Funktion wird deaktiviert.

  • Eine Funktion wird entfernt.

In dieser exemplarischen Vorgehensweise wird veranschaulicht, wie einer Funktion in einem SharePoint-Projekt ein Ereignisempfänger hinzugefügt wird. Die folgenden Aufgaben werden veranschaulicht:

  • Erstellen eines leeren Projekts mit einem Funktionsereignisempfänger.

  • Behandeln der FeatureDeactivating-Methode.

  • Hinzufügen einer Ankündigung zur Liste Ankündigungen mithilfe des SharePoint-Projektobjektmodells.

Tipp

Ihr Computer zeigt möglicherweise für einige der Elemente der Visual Studio-Benutzeroberfläche in der folgenden Anleitung andere Namen oder Standorte an. Diese Elemente sind von der jeweiligen Visual Studio-Version und den verwendeten Einstellungen abhängig. Weitere Informationen finden Sie unter Visual Studio-Einstellungen.

Vorbereitungsmaßnahmen

Zum Durchführen dieser exemplarischen Vorgehensweise benötigen Sie die folgenden Komponenten:

Erstellen eines Projekts vom Typ Funktionsereignisempfänger

Erstellen Sie zunächst ein Projekt, das den Funktionsereignisempfänger enthalten soll.

So erstellen Sie ein Projekt mit einem Funktionsereignisempfänger

  1. Zeigen Sie das Dialogfeld Neues Projekt an, indem Sie im Menü Datei auf Neu zeigen und dann Neues Projekt auswählen.

  2. Erweitern Sie unter Visual C# oder Visual Basic den Knoten SharePoint, und klicken Sie dann auf 2010.

  3. Wählen Sie im Bereich Vorlagen die Option Leeres Projekt aus.

    Dieser Projekttyp ist für Funktionsereignisempfänger vorgesehen, da für diese keine Projektvorlage vorhanden ist.

  4. Geben Sie im Feld Name den Namen "FeatureEvtTest" ein, und klicken Sie dann auf OK, um den Assistenten zum Anpassen von SharePoint anzuzeigen.

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

  6. Klicken Sie im Abschnitt Wie lautet die Vertrauensebene für diese SharePoint-Lösung? auf Als Farmlösung bereitstellen und dann auf Fertig stellen.

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

Hinzufügen eines Ereignisempfängers zur Funktion

Fügen Sie der Funktion danach einen Ereignisempfänger hinzu, und fügen Sie Code hinzu, der ausgeführt wird, wenn die Funktion deaktiviert wird.

So fügen Sie der Funktion einen Ereignisempfänger hinzu

  1. Erstellen Sie eine Funktion, indem Sie mit der rechten Maustaste auf den Knoten Funktionen klicken und dann Funktion hinzufügen auswählen.

    Beachten Sie, dass unter dem Knoten Funktionen eine Funktion mit dem Namen Feature1 angezeigt wird.

  2. Fügen Sie der Funktion einen Ereignisempfänger hinzu, indem Sie unter dem Knoten Funktionen mit der rechten Maustaste auf Feature1 klicken und dann Ereignisempfänger hinzufügen auswählen.

    Hiermit wird unter Feature1 eine Codedatei hinzugefügt. In diesem Fall lautet der Name entweder Feature1.EventReceiver.cs oder Feature1.EventReceiver.vb, abhängig von der Entwicklungssprache des Projekts.

  3. Die Ereignisempfängerklasse enthält vier auskommentierte Methoden, die als Ereignisse fungieren. Ersetzen Sie die FeatureDeactivating-Methode durch Folgendes:

    Public Overrides Sub FeatureDeactivating(ByVal properties As SPFeatureReceiverProperties)
        Try
            ' Get reference to SharePoint site.
            Dim site As SPSite = New SPSite("https://localhost")
            Dim web As SPWeb = site.OpenWeb("/")
            ' Get reference to Announcements list.
            Dim announcementsList As SPList = web.Lists("Announcements")
            ' Add new announcement to Announcements list.
            Dim oListItem As SPListItem = announcementsList.Items.Add
            oListItem("Title") = ("Deactivated Feature: " + properties.Definition.DisplayName)
            oListItem("Body") = (properties.Definition.DisplayName + (" was deactivated on: " + DateTime.Now.ToString))
            oListItem.Update()
        Catch e As Exception
            Console.WriteLine(("Error: " + e.ToString))
        End Try
    End Sub
    
    public override void FeatureDeactivating(SPFeatureReceiverProperties properties)
    {
        try
        {
            // Get reference to SharePoint site.
            SPSite site = new SPSite("https://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 dann die Funktion, um zu testen, ob die FeatureDeactivating-Methode eine Ankündigung in der SharePoint-Liste "Ankündigungen" ausgibt.

So testen Sie den Funktionsereignisempfänger

  1. Legen Sie die Eigenschaft Aktive Bereitstellungskonfiguration des Projekts auf Keine Aktivierung fest.

    Das Festlegen dieser Eigenschaft verhindert, dass die Funktion in SharePoint aktiviert wird, und ermöglicht Ihnen das Debuggen von Funktionsereignisempfängern. 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. Klicken Sie am oberen Rand der SharePoint-Webseite auf die Schaltfläche Websiteaktionen und dann auf Websiteeinstellungen.

  4. Klicken Sie auf der Seite Websiteeinstellungen unter dem Abschnitt Websiteaktionen auf den Link Websitefeatures verwalten.

  5. Klicken Sie auf der Seite Websitefeatures auf die Schaltfläche Aktivieren neben der FeatureEvtTest Feature1-Funktion.

  6. Klicken Sie auf der Seite Websitefeatures auf die Schaltfläche Deaktivieren neben der FeatureEvtTest Feature1-Funktion. Klicken Sie auf den Bestätigungslink, um die Funktion zu deaktivieren.

  7. Klicken Sie auf der Navigationsleiste auf den Link Ankündigungen.

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

Siehe auch

Aufgaben

Gewusst wie: Erstellen eines Ereignisempfängers

Weitere Ressourcen

Entwickeln von SharePoint-Lösungen