Frage

Ich habe einige Probleme bekam enfernen einige Eventreceivers ein content bilden. Die content und die Empfänger wurden von mir im Einsatz und registrieren so versuche ich keinen MOSS eingebauten oder internen Eventreceivers zu entfernen.

Ich versuche, dies zu archivieren mit dem folgenden Code-Snippet:

using (SPSite site = new SPSite("http://wssdev06/"))
        {
            using (SPWeb web = site.RootWeb)
            {
                // web.AllowUnsafeUpdates = true;

                SPContentType type = web.AvailableContentTypes[<ContentTypeName>];

                while (type.EventReceivers.Count > 0)
                {
                    type.EventReceivers[0].Delete();                        
                }

                type.Update();

                // web.AllowUnsafeUpdates = false;
            }
        }

Leider ist der Befehl „type.Update ()“ löst eine Ausnahme mir zu sagen, dass die Sammlung nicht geändert werden kann. Wie Sie im Code sehen können, habe ich schon verschiedene Dinge versucht, dieses Problem zu lösen, als unsichere Updates ermöglichen oder diesen Code mit erweiterten Rechten ausgeführt wird. Aber ich bekomme immer die gleiche Ausnahme.

Also, was mache ich falsch?

War es hilfreich?

Lösung

Ihr Problem ist, dass die "AvailableContentTypes" Eigenschaft gibt Ihnen eine READ-ONLY Sammlung.

Sie sollten auch die ‚Content‘ Eigenschaft, am sollte alles in Ordnung sein.

Grüße,

Dug.

Andere Tipps

Ist der Typ auf der Basis eines Verlagstyp? Ich habe Probleme hat, diese Typen zu ändern. Ansonsten könnten Sie versuchen, die gesamte SchemaXml des Typs ändern. Ich habe festgestellt, dass dies manchmal funktioniert, wenn andere Methoden nicht.

Es soll möglich sein type.ReadOnly = false einstellen auf die Art zu ermöglichen, zu schreiben.

Wie gut, Ihr SPWeb muss nicht entsorgt werden - siehe Roger Lamb Blog hier für weitere Details.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top