Tridion 2011의 이벤트 시스템을 사용하여 구성 요소를 게시 취소 할 때 몇 가지 추가 작업을 수행하고 있습니다. 관련 구성 요소를 게시하려면 here 코드를 사용하고 있습니다. 다음과 같이Tridion 2011에서 구성 요소 UnPublish 이벤트에 대한 (해제 된) PublicationTarget을 얻는 방법은 무엇입니까?
내가 내 이벤트 핸들러를 등록 해요 :
EventSystem.Subscribe<Component, UnPublishEventArgs>(
RemoveAndRepublish, EventPhases.Initiated);
을 ... 다음과 같이 내 처리기 방법은 다음과 같습니다
내 문제가UnPublishEventArgs.Targets
속성이
IList<PublishingTarget>
점이다
public void RemoveAndRepublish(Component cmp, UnPublishEventArgs args,
EventPhases phase)
{
// ... code to locate related component, and perform required actions...
var instruction = new PublishInstruction(cmp.Session)
{
DeployAt = DateTime.Now,
RenderInstruction = new RenderInstruction(cmp.Session)
{
RenderMode = RenderMode.Publish
},
ResolveInstruction = new ResolveInstruction(cmp.Session)
{
IncludeComponentLinks = true
},
RollbackOnFailure = true,
StartAt = DateTime.MinValue
};
var target = args.Targets.FirstOrDefault();
PublishEngine.Publish(new[] {related}, instruction, new[] {target});
}
, 런타임에 List<TargetType>
으로 밝혀졌고 PublicationTarget
개체를 호출하여 PublishEngine.Publish(...)
에 전화 할 수 있어야합니다.
제 질문은 UnPublish 이벤트에서 현재 (un) PublicationTarget을 가져 오는 방법이 있습니까?
누구에게 도움을 줄 수 있습니까?
확인을, 두 번째 단락은 수 ... 더 유망 소리 너는 내게 모범 이니? 'PublishEngine.Publish' 메소드는'IEnumerable'이 아닌'IEnumerable '을 사용합니다. –
Doh는'TargetType'의 배열을 취하는'PublishEngine.Publish()'의 오버로드를 완전히 보지 못했습니다. 감사! –