Как я могу получить доступ к XML-файлу в SharePoint Mapped Folder для создания Xml Reader? - PullRequest
2 голосов
/ 20 марта 2012

SharePoint Mapped Folder Structure

Я использовал этот код для доступа к определенному XML-файлу в сопоставленной папке SharePoint;

XmlReader reader = XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream( string.Format("{0}\\{1}", SPUtility.GetGenericSetupPath("TEMPLATE\\ADMIN\\AIP_RefinementPanel"), "CustomFilterCategoryDefinition.xml")));

Но я получил ошибку во время развертывания. Этот код не работает для доступа к этому XML-файлу. Как я могу исправить свою ошибку?

Спасибо,

MKacar

Ответы [ 2 ]

3 голосов
/ 24 марта 2012

Ваш код должен работать, если вы пропустите вызов GetManifestResourceStream . Я полагаю, вы хотите прочитать файл из файловой системы, а не ресурс, встроенный в вашу сборку.

string templatePath = SPUtility.GetGenericSetupPath("TEMPLATE");
string xmlPath = Path.Combine(templatePath, @"ADMIN\AIP_RefinementPanel\CustomFilterCategoryDefinition.xml");
XmlReader reader = XmlReader.Create(xmlPath);
3 голосов
/ 22 марта 2012

Если вам известен Xml-файл Url для вас (и вы знаете его, потому что это ваш пользовательский Wsp и Xml-файл развернут в некоторой отображаемой виртуальной папке), лучше получить путь локальной файловой системы к файлу и передать его в XmlReader, так какможет произойти сбой с URL-адресом из-за необходимости авторизации.

Например, у меня есть проект с некоторыми файлами Xml и Xslt, развернутыми в сопоставленной папке 'layouts'

enter image description here

И я получил доступ к Config.xml следующим образом

var configDirPath = HttpContext.Current.Server.MapPath("/_layouts/LMUI/Configuration");
var configFilePath = configDirPath + "\\" + "Config.xml";

Прочтите документацию MSDN по HttpContext.Current.Server.MapPath http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath.aspx, чтобы получить больше информации.

...