0

我的应用程序中需要一个 XML 文件,因此我将它添加到了Files其中的一部分,AppResources.resx它以其名称出现在 Resources 文件夹中myFile.xml

var myFile = MyApp.Resources.AppResources.myFile; 

这只是返回一个字符串值,这不是我想要的。

XmlSerializer需要一个流到现有文件来反序列化它,所以我不知道如何处理这个字符串?

我怎样才能拥有该文件的 xml 变量?谢谢

4

2 回答 2

1

使用StringReader

        var myFile = MyApp.Resources.AppResources.myFile;

        StringReader sr = new StringReader(myFile);
        var xmlSerializer = new XmlSerializer(typeof(Foo));
        var classInstance = xmlSerializer.Deserialize(sr);
于 2013-06-27T00:16:27.130 回答
0

如果我理解正确,您可以使用 MapPath 来解析文件路径并直接使用它来打开附加程序并序列化您的对象(在这种情况下,我使用具有单个属性名称的示例类 Foo)。如果我理解您的要求有误,请告诉我。

using(var stream = new FileStream("test.txt", FileMode.Append))
            {
                var serializer = new XmlSerializer(typeof (Foo));

                var @object = new Foo
                    {
                        Name = "Bar"
                    }; 

                serializer.Serialize(stream, @object);
            }

这将沿线附加一些东西

<Foo>
  <Name>Bar</Name>
</Foo>
于 2013-06-27T00:15:31.847 回答