XML-файл в обозревателе решений C # - PullRequest
3 голосов
/ 15 августа 2011

У меня есть 3D-объект и его точки данных.Данные состоят из 1000 точек.

Ниже приведены данные для точек.

   public static List<MyLine> OpenProject(string _file)
    {
        List<MyLine> Lines = new List<MyLine>();
        XmlDocument doc = new XmlDocument();
        doc.LoadXml(_file);
        XmlNodeList coordinates = doc.SelectNodes("/Siene/MyLine/Coordinates");
        foreach (XmlNode coordinat in coordinates)
        {
            int x1 = Int32.Parse(coordinat["Start"].Attributes["X"].Value);
            int y1 = Int32.Parse(coordinat["Start"].Attributes["Y"].Value);
            int z1 = Int32.Parse(coordinat["Start"].Attributes["Z"].Value);
            MyLine czg = new MyLine(x1, y1, z1);
            lines.Add(czg);
        }
        return lines;
    }

Вместо загрузки из внешнего файла (doc.LoadXml (_file), файл XML должен находиться вОбозреватель решений и все точки данных должны быть в состоянии читать оттуда.

Не могли бы вы сказать мне, как это можно сделать.

С уважением,

Марк Твен

Ответы [ 2 ]

4 голосов
/ 15 августа 2011

В решении

  • Добавьте файл в свое решение.
  • Щелкните правой кнопкой мыши файл, выберите «Свойства».
  • Измените «Действие сборки»=> «Встроенный ресурс»

В вашем коде

  • Используйте класс Assembly, чтобы получить ссылку на сборку, содержащую встроенный ресурс (т.е. Assembly.GetExecutingAssembly ())
  • Используйте ссылку на сборку, чтобы получить поток в файл (т.е. assemblyRef.GetManifestResourceStream ("assemblyName.filename.xml"))
  • XML-документ должен иметь возможность загружать поток.

Допустим, моя сборка называлась "Hello.World", а файл был внедрен в корень проекта с именем "foo.xml", поэтому вы можете использовать этот код:

var myAss = Assembly.GetExecutingAssembly();
using (var s = myAss.GetManifestResourceStream(string.Format("{0}.foo.xml", 
                                               myAss.GetName().Name)))
{
    var doc = new XmlDocument();
    doc.Load(s);
}
2 голосов
/ 15 августа 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...