C# 在Windows Phone 7中写入XML文档
我正试图将一些数据从一个对象写入一个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
使用(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