Pregunta

Tengo algunos problemas anular el registro de algunos EventReceivers forman un contenttype. Los contenttype y los receptores fueron desplegados y registrados por mí mismo, así que no trate de quitar cualquier EventReceivers internos o integrados en MOSS.

Me intenta archivar esto con el siguiente fragmento de código:

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

Por desgracia, la "type.Update ()" comando lanza una excepción que me dice que la colección no se puede modificar. Como se puede ver en el código que ya he intentado cosas diferentes para resolver este problema, ya que permite actualizaciones inseguras o la ejecución de este código con privilegios elevados. Pero siempre tengo la misma excepción.

Entonces, ¿qué estoy haciendo mal?

¿Fue útil?

Solución

Su problema es que la propiedad "AvailableContentTypes" que devuelve un Sólo lectura colección.

También debe usar la propiedad '' TiposContenido, ans todo debe estar bien.

Saludos,

Dug.

Otros consejos

Es el tipo basada en un tipo de publicación? He tenido problemas cambiantes esos tipos. De lo contrario, es posible que trate de cambiar todo el SchemaXml del tipo. He encontrado que esto a veces funciona cuando otros métodos no lo hacen.

Usted debe ser capaz de establecer type.ReadOnly = false para permitir la escritura con el tipo.

Además, su SPWeb no tiene por qué ser eliminados - vea blog de Roger Cordero aquí para más detalles.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top