Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.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/4/oop/2.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# XMLSerializer-是否将类添加到命名空间?_C#_Xml_Wpf_Namespaces_Webbrowser Control - Fatal编程技术网

C# XMLSerializer-是否将类添加到命名空间?

C# XMLSerializer-是否将类添加到命名空间?,c#,xml,wpf,namespaces,webbrowser-control,C#,Xml,Wpf,Namespaces,Webbrowser Control,在过去的两天里,我一直在解决这个问题,但仍然没有成功,我正在寻求帮助 My列表框根据在组合框中选择的项目,获取添加到列表框中的生成项目。当我单击按钮Create时,会出现一个新窗口,其中包含一个WebBrowser对象 (不允许上传图像,因此它包含在链接中) 这是带有列表框的屏幕,其中包含生成的项目以及单击的按钮 按钮点击事件 这将获取组合框中选定的项。然后,它使用名为Standards的属性创建Alrighty类的一个新实例,该属性包含项目列表(列表框中的项目)。属性用第三行填充,然后我有另

在过去的两天里,我一直在解决这个问题,但仍然没有成功,我正在寻求帮助

My
列表框
根据在组合框中选择的项目,获取添加到列表框中的生成项目。当我单击按钮
Create
时,会出现一个新窗口,其中包含一个
WebBrowser
对象

(不允许上传图像,因此它包含在链接中)

这是带有列表框的屏幕,其中包含生成的项目以及单击的按钮

按钮点击事件

这将获取组合框中选定的项。然后,它使用名为Standards的属性创建Alrighty类的一个新实例,该属性包含项目列表(列表框中的项目)。属性用第三行填充,然后我有另一个名为SaveXML的类(见下文),它保存为XML。然后将打开浏览器

string selectedStandard = (string)cmbStandard.SelectedItem;
Alrighty info = new Alrighty();
info.Standards = _standardDefinitions;
SaveXML.SaveData(info, string.Format("{0}.xml", selectedStandard));

HTMLBrowser boss = new HTMLBrowser(selectedStandard);
boss.Show();
SaveXML类

public static void SaveData(object obj, string filename)
{
    XmlSerializer sr = new XmlSerializer(obj.GetType());
    TextWriter writer = new StreamWriter(filename);
    sr.Serialize(writer, obj);
    writer.Close();
}
问题

当我单击按钮并进入带有
Web浏览器的窗口时,将显示此代码上的

正如您从蓝色框中看到的,当我删除此代码并为我的
样式表添加代码时,一切正常,但问题是蓝色框中的代码一直在生成,是否有办法不在创建的
XML
文件中获取此代码

额外的

如何在蓝色框中显示此字符串而不是生成的代码:

<?xml-stylesheet type="text/xsl" href="StandardXS.xsl"?>

编辑:

public class SaveXML
{
    public static void SaveData(object obj, string filename)
    {

        //empty namespace and empty value
        XmlSerializerNamespaces alright = new XmlSerializerNamespaces();

        alright.Add("", "");

        XmlSerializer sr = new XmlSerializer(obj.GetType());
        TextWriter writer = new StreamWriter(filename);

        sr.Serialize(writer, obj, alright);
        writer.Close();

    }

    public void WriteXml(XmlWriter writer) { writer.WriteAttributeString(@"<?xml-stylesheet type=text/xsl href=StandardXS.xsl?>", string.Empty); }

}
公共类SaveXML
{
公共静态void SaveData(对象obj,字符串文件名)
{
//空命名空间和空值
XmlSerializerNamespaces=新的XmlSerializerNamespaces();
好的,加上(“,”);
XmlSerializer sr=新的XmlSerializer(obj.GetType());
TextWriter writer=新的StreamWriter(文件名);
高级连载(作者,obj,OK);
writer.Close();
}
public void WriteXml(XmlWriter-writer){writer.WriteAttributeString(@“”,string.Empty);}
}

您可以这样做:

XmlSerializerNamespaces namespace = new     XmlSerializerNamespaces();

//empty namespace and empty value
namespace.Add("", "");

XmlSerializer serializer = new XmlSerializer(someType);

//Serialize the object with custom namespace
serializer.Serialize(xmlTextWriter, myObj, namespace);

如我在评论中所说,要添加自定义属性,请实现IXmlSerializable和WriteXml,并添加自定义属性

谢谢你的回答,它删除了蓝色框中的所有内容,但没有删除实际的标记。Alrighty是你的类名。如果要序列化而不使用该标记,则需要实现IXmlSerializable和WriteXml,如果要读取ReadXml,是否可以使标记
出现?public void WriteXml(XmlWriter writer){writer.WriteAttributeString(@“”,string.Empty);}我将该代码添加到SaveXML类中,但是在哪里调用该方法呢。