C# 使用TextWriter编写XML的问题

C# 使用TextWriter编写XML的问题,c#,.net,xml,asp.net-mvc,C#,.net,Xml,Asp.net Mvc,我曾尝试使用Textwriter编写XML,但我发现我无法将字符”&写入该文件 我写的课程如下: public void Write_File(rss r, string fileName)//-- rss here is a class I built in other place { XmlSerializer serializer = new XmlSerializer(typeof(rss)); TextWriter textWriter = new StreamWrit

我曾尝试使用Textwriter编写XML,但我发现我无法将字符<>”&写入该文件

我写的课程如下:

public void Write_File(rss r, string fileName)//-- rss here is a class I built in other place
{
    XmlSerializer serializer = new XmlSerializer(typeof(rss));
    TextWriter textWriter = new StreamWriter(path + fileName);//-- path is directory path to save xml file
    serializer.Serialize(textWriter, r);
    textWriter.Close();            
}
有人能帮我解决这个问题吗?

你就是不能。C#转换这些字符:

< to &lt; 
> to &gt;
& to &amp;
到
&至&;

如果允许,您可以销毁XML。如果需要添加标记,您不能简单地使用序列化程序。您需要使用代码构建文档,例如form class

,只需在项目中包含
System.Web
程序集,并利用
HttpUtility
类对字符串进行如下编码:

public void Write_File(rss r, string fileName)//-- rss here is a class I built in other place
{
    XmlSerializer serializer = new XmlSerializer(typeof(rss));
    TextWriter textWriter = new StreamWriter(path + fileName);
    serializer.Serialize(textWriter, HttpUtility.HtmlEncode(r));
    textWriter.Close();            
}

我只能假设您已经覆盖了
rss
ToString
方法,在此处返回XML字符串,因为没有其他方法可以在此处获取字符串。

您的描述对定位错误没有多大帮助。使用HtmlEncode编码字符串是否有错误?问题是,这是HttpUtility.HtmlEncode(r)要求r是System.String类型。但r这是rss类的实例。我尝试了,但不允许。非常感谢。@潘,您是否重写了rss类的ToString方法?如果是,请在调用HtmlEncode时尝试调用对象上的ToString