Как получить URL публикации WebDAV в C # .NET - PullRequest
2 голосов
/ 11 октября 2011

Я пытаюсь получить URL-адрес своей публикации WebDAV, и ниже приводится логика, которую я пробую, я успешно получаю webdavurl страницы и компонента, однако пытаюсь получить URL-адрес публикации.

public static string getPublicationWebDav(string partialWebdavURL, Package package, Engine engine)
{
string webDav = string.Empty;
string pubURI = string.Empty;
if (!string.IsNullOrEmpty(partialWebdavURL))
{
_log.Info("partialWebdavURL" + partialWebdavURL);

RepositoryLocalObject repLocalObject = null;

if (repLocalObject == null)
{
Item pubItem = package.GetByType(ContentType.Publication);

repLocalObject = (Publication)engine.GetObject(pubItem.GetAsSource().GetValue("ID"));
}
webDav = repLocalObject.WebDavUrl + partialWebdavURL;
}
_log.Info("webDav" + webDav);
return webDav;
}

строка дает мне ошибку

repLocalObject = (Publication)engine.GetObject(pubItem.GetAsSource().GetValue("ID"));

Однако, когда я пытаюсь заставить объект страницы работать нормально, нижеприведенный код работает нормально.

if (package.GetByType(ContentType.Page) != null)
{
Item pageItem = package.GetByType(ContentType.Page);
//_log.Info("pageItem" + pageItem);
repLocalObject = (Page)engine.GetObject(pageItem.GetAsSource().GetValue("ID"));
pubURI = package.GetValue("Page.Publication.ID");
}
else
{
Item component = package.GetByType(ContentType.Component);
repLocalObject = (Component)engine.GetObject(component.GetAsSource().GetValue("ID"));
pubURI = package.GetValue("Component.Publication.ID");
}

Моя цель - получить публикацию webdavURL.

1 Ответ

4 голосов
/ 12 октября 2011

После долгих поисков на форумах tridion, я нашел решение ниже.Спасибо Nuno !!

// Сначала мы должны найти текущий объект, который мы визуализируем(WebDavUrl репозитория не выставляется).В 2009 году я получаю contextPublication.RootFolder.WebDavUrl.

...