문제

일부 eventReceivers가 ContentType를 형성하는 데 몇 가지 문제가 있습니다. ContentType 및 수신기는 직접 배치 및 등록되어 MOSS 내장 또는 내부 이벤트 리버를 제거하려고하지 않습니다.

다음 코드 스 니펫으로 이것을 보관하려고합니다.

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

불행히도 "type.update ()"명령은 컬렉션을 수정할 수 없다는 예외가 발생합니다. 코드에서 볼 수 있듯이, 안전하지 않은 업데이트를 허용 하거나이 코드를 실행하여 권한이 높아짐에 따라 이미이 문제를 해결하기 위해 다른 것들을 시도했습니다. 그러나 나는 항상 같은 예외를 얻습니다.

그래서 내가 뭘 잘못하고 있니?

도움이 되었습니까?

해결책

당신의 문제는 "availbecontentTypes"속성이 당신을 반환한다는 것입니다. 읽기 전용 수집.

또한 'ContentTypes'속성을 사용해야합니다.

문안 인사,

젖퉁이.

다른 팁

유형은 출판 유형을 기반으로합니까? 이러한 유형을 바꾸는 데 문제가있었습니다. 그렇지 않으면 유형의 전체 schemaxml을 변경하려고 시도 할 수 있습니다. 나는 다른 방법이 그렇지 않을 때 때때로 작동한다는 것을 알았습니다.

당신은 설정할 수 있어야합니다 type.ReadOnly = false 유형에 쓰기를 가능하게합니다.

또한 SPWEB를 폐기 할 필요가 없습니다. 로저 램의 블로그는 여기에 있습니다 자세한 사항은.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top