Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Windows Phone 7中写入XML文档_C#_.net_Xml_Windows Phone 7.1 - Fatal编程技术网

C# 在Windows Phone 7中写入XML文档

C# 在Windows Phone 7中写入XML文档,c#,.net,xml,windows-phone-7.1,C#,.net,Xml,Windows Phone 7.1,我正试图将一些数据从一个对象写入一个XML文档,并且正在遵循一个在线教程,但是我遇到了一个我似乎无法理解的问题,我用来启动文档创建的代码是使用(XmlWriter writer=XmlWriter.Create(“myData.XML”),而“myData.XML”出现了一个错误,我得到的错误是: The best overload method match for 'System.Xml.XmlWriter.Create(System.Xml.XmlWriter)' has some inva

我正试图将一些数据从一个对象写入一个XML文档,并且正在遵循一个在线教程,但是我遇到了一个我似乎无法理解的问题,我用来启动文档创建的代码是
使用(XmlWriter writer=XmlWriter.Create(“myData.XML”)
,而“myData.XML”出现了一个错误,我得到的错误是:

The best overload method match for 'System.Xml.XmlWriter.Create(System.Xml.XmlWriter)'
has some invalid arguments

Argument 1: cannot convert from 'string' to 'System.Xml.XmlWriter'
XmlWriter与Windows Phone兼容吗?如果不是,我将不得不更改大量写入文件的代码吗

编辑:这是我的代码

        string output = SerializeToString<AppData>(rulesData);

        using (XmlWriter writer = XmlWriter.Create(output))
        {
            writer.WriteStartDocument();
            writer.WriteStartElement("myData");

            writer.WriteElementString("Starting Cash", rulesData.myStartingCash);
            writer.WriteElementString("Land on Go Data", rulesData.myLandOnGo);
            writer.WriteElementString("Free Parking Data", rulesData.myFreeParking);
            writer.WriteElementString("Full Circuit Data", rulesData.myFullCircuit);
            writer.WriteElementString("Auction Data", rulesData.myAuction);
            writer.Flush();

            writer.WriteEndElement();
            writer.WriteEndDocument();
        }
string输出=序列化字符串(rulesData);
使用(XmlWriter=XmlWriter.Create(输出))
{
writer.WriteStartDocument();
writer.writeStarteElement(“myData”);
writer.WriteElementString(“起始现金”,rulesData.myStartingCash);
writer.WriteElementString(“运行中的着陆数据”,rulesData.myLandOnGo);
writer.WriteElementString(“免费停车数据”,rulesData.myFreeParking);
writer.WriteElementString(“完整电路数据”,rulesData.myFullCircuit);
WriteElementString(“拍卖数据”,rulesData.myAuction);
writer.Flush();
writer.writeedelement();
writer.WriteEndDocument();
}
谢谢-Ryan

您可以使用以下代码:

   public static void SerializeToStream<T>(Stream stream, object model)
   {
        var writer = XmlWriter.Create(stream);
        var s = new XmlSerializer(typeof(T));
        s.Serialize(writer, model);
    }

    public static string SerializeToString<T>(object model)
    {
        var xmlSer = new XmlSerializer(typeof(T));

        using (var stream = new MemoryStream())
        {
            SerializeToStream<T>(stream, model);
            var s = stream.ToArray();
            return System.Text.Encoding.UTF8.GetString(s, 0, s.Length);
        }
    }

    public static void SerializeToFile<T>(string filename, object model)
    {
        using (FileStream stream = File.Open(filename, FileMode.Create))
        {
            SerializeToStream<T>(stream, model);
        }
    }
公共静态流(流、对象模型)
{
var writer=XmlWriter.Create(流);
var s=新的XmlSerializer(typeof(T));
s、 序列化(编写器、模型);
}
公共静态字符串SerializeToString(对象模型)
{
var xmlSer=新的XmlSerializer(typeof(T));
使用(var stream=new MemoryStream())
{
序列化流(流、模型);
var s=stream.ToArray();
返回System.Text.Encoding.UTF8.GetString(s,0,s.Length);
}
}
公共静态void SerializeToFile(字符串文件名、对象模型)
{
使用(FileStream-stream=File.Open(filename,FileMode.Create))
{
序列化流(流、模型);
}
}
您的代码无法编译,因为您将字符串而不是流传递给XmlWriter

用法:

  string output = SerializeToString<ClassName>(instanceOfClass);
string输出=SerializeToString(InstanceOffClass);

由于某些原因,我无法访问serializations SerializeToStream和XmlSerializer,我已经包含System.Xml.Serialization,有什么想法吗?请记住,这是在WindowsPhone7平台上,根据我以前的经验,它缺少一些可以在桌面上使用的功能pplications@TotalJargon对不起,忘了添加it@TotalJargon请看我回答的最后一行,这是您给我的一些代码:var s=new-XmlSerializer(typeof(T));var xmlSer=新的XmlSerializer(typeof(T));在“XmlSerializer”下有锯齿状的红线,它给我的错误是“找不到类型或命名空间名称“XmlSerializer”(您是否缺少using指令或程序集引用?)”我有System.Xml和System.Xml.Serialization,所以我需要添加引用还是不兼容?您必须添加System.Xml.dll