У меня ниже код в VBScript
' Retrieve the keyword category for page section names
Set SectionCat = TDSE.GetObject(WebdavToUri(getPublicationWebDav(WEBDAV_SECTION_CAT)), 1)
' Retrieve the localized section keyword
Set SectionKeyword = SectionCat.GetKeywordByTitle(meta)
' Open the English translated section keyword
Set SectionKeyword = TDSE.GetObject(SectionKeyword.Id, 1, WEBDAV_UKEN_PUB)
SectionName = SectionKeyword.Title
Где WEBDAV_UKEN_PUB - это WebDavPath, теперь в методе VBScript GetObject у нас есть опция для передачи трех параметров: 1) Item.ID, 2) TDSDefines.OpenModeEditWithFallback и 3) WebDavPath, откуда сделать объект.
Теперь я хочу написать ту же логику в шаблонах 2009.Net, ниже приведен пример кода, который я пытаюсь написать, но не могу избавиться от объекта VBScript.
Category cat = engine.GetSession().GetObject(WebdavToUri(getPublicationWebDav(Constants.WEBDAV_SECTION_CAT,package,engine), engine)) as Category;
if (cat != null)
{
//_log.Info("Category" + cat.Title);
Keyword keyword = cat.GetKeywordByTitle(meta);
//_log.Info("keyword 1" + keyword.Title);
keyword = engine.GetObject(Constants.WEBDAV_UKEN_PUB) as Keyword;
//_log.Info("keyword 2 " + keyword.Title);
if (keyword != null)
{
sectionName = keyword.Title;
}
keyword = null;
Я могу создать объект Category, однако, когда я пытаюсь заставить объект Keyword получить его неуспешно и выдавать ошибку ссылки на объект.
Есть ли у нас какой-либо класс или метод, который работает так же, как VBScript GetObject, который сделает объект из переданного веб-пути, или может кто-нибудь дать пример кода на этом.