Obawiam się, że nie będzie możliwe tylko na każdej pozycji w Package
, ponieważ Engine
spodziewa Template
s opierać się na pozycji Tridion.
Jeśli pozycja szablonu jest na podstawie elementu Tridion, prawdopodobnie można uzyskać dość daleko, zaczynając od metody Engine.GetMediator
. Jeśli tak nie jest, musisz znaleźć jakiś sposób, aby przekształcić go w prawidłowy obiekt Template
.
Template template = ...
IMediator mediator = engine.GetMediator(template);
mediator.Transform(engine, template, package);
Kiedy trzeba utworzyć Component
obiekt z pozycji opartego na Tridion w opakowaniu, zwykle zrobić coś takiego:
Component component = new Component(item.GetAsXmlDocument().DocumentElement,
engine.GetSession);
nie próbowałem, ale oczekują, że możesz zrobić to samo dla Template
- biorąc pod uwagę, że zaczynasz od prawidłowego elementu z pakietu reprezentującego szablon, aby rozpocząć. Możesz prawdopodobnie sklonować XML z istniejącego przedmiotu lub znaleźć inny sposób na sfałszowanie go.
Jeśli to polecenie działa, będzie działać we wszystkich zarejestrowanych typach szablonów. Model Engine
nie zapewnia specjalnego traktowania typów dołączonych do Tridion.
Klasa Package ma metodę "package.EvaluateExpression (wyrażenie łańcuchowe)", która może być warta zbadania. –