2016-04-22 95 views
1

我有12個相當複雜的模式,我想要反序列化。它們形成一種層次結構,在其他每個定義中都使用它們。所以我使用架構下的XML架構定義工具這樣,與依賴關係到反序列化:XSD反序列化會產生部分類的混亂

xsd.exe /c schema.xsd importedSchema1.xsd importedSchema2.xsd  importedSchema3.xsd importedSchema4.xsd 

,結果是一樣的東西:

schema.cs 
schema_importedSchema1.cs 
schema_importedSchema1_importedSchema2.cs 
schema_importedSchema1_importedSchema2_importedSchema3.cs 
schema_importedSchema1_importedSchema2_importedSchema3_importedSchema4.cs 

而且他們全部分類的。有一種方法可以避免這種情況? 我是C#的新手,這是我第一次玩串行化,所以我想也許我錯過了一些東西。我發現的所有例子都太簡單了,我找不到像這樣的複雜情況。所以我不知道這裏究竟發生了什麼,如果有更好的方法來實現它,或者我應該如何使用這些類,如果它們像這樣分裂的話。一些建議?

+0

要麼自己生成Serialize類,要麼手動編輯生成的部分類組合的類。 – jdweng

+0

手動序列化不是一個選項,它是一個巨大的層次結構。我可以考慮你的第二個選擇。但這也是手動工作的日子,模式可能會隨着時間的推移而改變,所以自動完成這個過程會很好。我的每個模式都定義了一個包含許多類的包。但是我最終得到了一個公共的部分類ClassA {在20個不同的文件中聲明。在這些文件的每一個文件中都有不同包的類。如果編譯器能夠在這樣的混亂中找到東西,我不會更改逗號,但是某些聲明在不同的文件中是相同的。 – Heteroclito

+0

編寫一個工具來刪除重複項。 – jdweng

回答