XML dosent的工作路径

时间:2015-11-13 17:08:38

标签: c# xml

每当我尝试将某些内容保存到我创建的XML文档时,我使用的路径一直都是错误的。 这是代码:

public string ToXml<T>(T obj, string path)
    {

        var saveToXmlPath = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), path);
        using (var stringWriter = new StreamWriter((saveToXmlPath)))
        {
            var xmlSerializer = new XmlSerializer(typeof(ObservableCollection<object>));
            xmlSerializer.Serialize(stringWriter, obj);
            return stringWriter.ToString();
        }

    }

    public Constructor()
    {
        var temp = new ObservableCollection<Model> {
             new Model { ID = 1, Name = "Name1" },
             new Model { ID = 2,  Name = "Name2" },
             new Model { ID = 3,  Name = "Name3" } };
        ToXml(temp, @"Common\Assets\XML\XmlFile.xml");

    }

它一直说路径错误,不断添加/ debug / big到路径。

2 个答案:

答案 0 :(得分:0)

在此行上设置断点:

var saveToXmlPath = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), path);

它说什么?

Assembly.GetEntryAssembly()。位置正在为您的路径添加/调试。

答案 1 :(得分:0)

首先,您的“问题”与 XML 无关。你想知道为什么Assembly.GetEntryAssembly().Location给你“... / bin / Debug”。

其次......根据您实际提供的信息,实际上根本没有问题;只是你的误解。 Assembly.GetEntryAssembly().Location会为您提供执行“ .exe ”文件(您的应用)的位置。在这种情况下,默认情况下,它确实位于“bin / Debug”文件夹中。如果您希望将XML文件写在其他地方,那么如果您指定其他地方应该在哪里,那将会很有帮助。