Я разрабатываю webpart
, который должен читать файл XML.Для этого я создал класс, в котором метод NodeValue()
должен возвращать текст внутри узлов.Это работает, если протестировано с консольным приложением, однако, когда я добавляю это (класс читателя и пользовательский файл XML) в свой проект SharePoint и пытаюсь развернуть его, я получаю сообщение об ошибке Web Part error: File Not Found
.Я попытался изменить свойства файла, чтобы он добавлялся в скомпилированную версию, но у меня все еще возникают проблемы с указанием пути к файлу.Вот класс читателя:
using System;
using System.Reflection;
using System.IO;
using System.Xml;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OrgChartPart.WebPartCode
{
class ReadXml
{
public string FilePath { get; set; }
public ReadXml()
{
FilePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)+"\\LAYOUTS\\config.xml";
}
public string NodeValue(int pos)
{
if (pos <= 0)
return "invalid position!(this is not a node value)";
XmlTextReader textReader = new XmlTextReader(FilePath);
int counter = 0;
while (counter != pos)
{
textReader.Read();
if (textReader.NodeType.ToString() == "Text")
counter++;
}
return textReader.Value;
}
}
}
А вот часть кода веб-части, где я создаю экземпляр этого класса для чтения файла:
StringBuilder sb = new System.Text.StringBuilder();
.......
string position = null, link_type = null, link_color = null,
node_alignment = null, node_fill = null, node_color_style = null, hyperlinks = null;
ReadXml readXml = new ReadXml();
sb.Append(@"
........
Я не знаю,У меня проблемы с определением пути к файлу, или мне нужно иметь повышенное разрешение для доступа к нему?Или, может быть, когда решение развернуто, структура каталогов меняется, поэтому я указываю неправильный путь?Как вы думаете?Заранее спасибо