2016-11-04 9 views
0

일부 설정이 이미 적용된 ContainerPart가있는 마이그레이션에서 새 컨텐츠 유형을 작성하려고합니다.새 유형의 ContainerPart 설정

ContentDefinitionManager.AlterTypeDefinition("NewType", 
    cfg => cfg 
     .DisplayedAs("New Type") 
     .WithPart(typeof(TitlePart).Name) 
     .WithPart(typeof(ContainerPart).Name) 
      .WithSetting("ContainerPartSettings.ItemsShownDefault", "False") 
     .WithPart(typeof(CommonPart).Name) 
     .WithPart(typeof(IdentityPart).Name) 
     .Creatable() 
     .Listable() 
    ); 

항목 설명 마이그레이션 후 기본값은 True로 유지됩니다. ContainerSettings 같은 다른 버전 "ContainerPartSettings를"이름 바꾸기

  • 의 대해서 typeof() 함수를 사용하여 파트를 지정하지 않으면 ContainerTypePartSettings

  • :

    나는 이것의 몇 가지 변화를 시도했다 직접 문자열

내가 알 수있는 것부터 ContainerSettings는 값을 저장하는 다른 방법을 사용합니다 AutorouteSettings 같은 다른 사람에게.

답변

2

코드를 보면, 당신은 부분 대신 유형의 설정을 체인되어,

.WithPart(typeof(ContainerPart).Name) // close the WithPart function 

    // which means the following line is chained to the type 
    .WithSetting("ContainerPartSettings.ItemsShownDefault", "False") 

는이 문제를 해결하려면 다음과 같이 그것을 :

.WithPart(typeof(ContainerPart).Name, part => part 

    // inside the ContainerPart context 
    .WithSetting("ContainerPartSettings.ItemsShownDefault", "False") 
) // Close ContainerPart context 

.WithPart(..) 

부품 대신 유형에 대한 설정을 지정했다면, defi 인 ContainerTypePartSettings 클래스를 사용하십시오 네임 here :

.WithPart(typeof(ContainerPart).Name) 

// Set settings on the type instead of the part 
.WithSetting("ContainerTypePartSettings.ItemsShownDefault", false)