2014-04-10 101 views
0

我一直在这个问题上停留了两天,仍然没有成功,我正在寻求一些帮助。XMLSerializer - 添加到名称空间的类?

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

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

这是与生成的项目,并单击该按钮列表框中的画面。

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); } 

} 

回答

1

你可以不喜欢它这样的:

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

+0

谢谢您的回答,它删除了所有的东西,在蓝框,但没有删除实际标签。 – user3507542

+0

Alrighty是你班上的名字。如果不想该标签序列化,你将需要实现IXmlSerializable的贯彻和中WriteXML如果你想读的ReadXml –

+0

是否有可能获得标签'<?xml-stylesheet type =“text/xsl”href =“StandardXS.xsl”?>'出现? – user3507542

相关问题