gpt4 book ai didi

c# - XMLSerializer - 添加到命名空间的类?

转载 作者:行者123 更新时间:2023-12-04 17:03:50 27 4
gpt4 key购买 nike

过去 2 天我一直被这个问题困扰,但仍然没有解决,我正在寻求帮助。

我的 Listbox根据在 Combobox 中选择的项目,获取添加到其中的生成项目.当我点击按钮时 Create出现一个带有 WebBrowser 的新窗口里面的对象。

(不允许上传图片,所以它包含在链接中)

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

http://imgur.com/6B8GO1m

按钮点击事件

这将获取在组合框中选择的项目。然后它创建了一个新的 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 Browser 进入窗口时在此代码上出现:

http://imgur.com/zF465n5

正如您从蓝色框中看到的那样,当我删除此代码并将代码添加到我的 Stylesheet 中时一切正常,但问题是蓝框中的代码不断生成,有没有办法在 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); }

}

最佳答案

你可以这样做:

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 并添加您的自定义属性。

关于c# - XMLSerializer - 添加到命名空间的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22991494/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com