我一直在这个问题上停留了两天,仍然没有成功,我正在寻求一些帮助。XMLSerializer - 添加到名称空间的类?
我Listbox
获取生成项目添加到它取决于在Combobox
选择的项目。当我点击按钮Create
时,出现一个新的窗口,其中有一个WebBrowser
对象。
(Wasnt允许所以它包含在链接上传图片)
这是与生成的项目,并单击该按钮列表框中的画面。
按钮单击事件
这得到在组合框中选择的项目。然后它创建一个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
这个代码的窗口出现:
你可以从蓝色框中看到,当我删除此代码,并在我的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); }
}
谢谢您的回答,它删除了所有的东西,在蓝框,但没有删除实际标签。 –
user3507542
Alrighty是你班上的名字。如果不想该标签序列化,你将需要实现IXmlSerializable的贯彻和中WriteXML如果你想读的ReadXml –
是否有可能获得标签'<?xml-stylesheet type =“text/xsl”href =“StandardXS.xsl”?>'出现? – user3507542