Bileşenlerin yayınlanmaması sırasında bazı ek işlemler gerçekleştirmek için Tridion 2011'in Olay Sistemini kullanıyorum. İlgili bir bileşeni yayınlamak için here kodunu kullanıyorum. aşağıdaki gibiTridion 2011'de UnPublish bileşeninin (un-) PublicationTarget'i nasıl edinilir?
benim olay işleyicisi kayıt ediyorum:
EventSystem.Subscribe<Component, UnPublishEventArgs>(
RemoveAndRepublish, EventPhases.Initiated);
... ve şöyle benim işleyicisi yöntemidir:
SorunumUnPublishEventArgs.Targets
özelliği bir
IList<PublishingTarget>
olmasıdır
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});
}
, Çalışma zamanında List<TargetType>
olması ve PublishEngine.Publish(...)
arayabilmesi için PublicationTarget
nesnesi almam gerekiyor.
Sorum şu: Bir UnPublish olayından güncel (un) PublicationTarget'i almanın bir yolu var mı?
Herhangi biri size herhangi bir yardım sunabilir mi?
Tamam, 2. paragraf olabilir ... daha umut verici bana bir örnek verirsin? 'PublishEngine.Publish' yöntemi' IEnumerable '' IEnumerable 'değil. –
Doh, "TargetType" dizisini içeren PublishEngine.Publish() 'ın aşırı yüklenmesini tamamen göremedi. Teşekkürler! –