2014-04-10 130 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

相關問題