2017-01-10 45 views
1

我得到了一個相對複雜的xml文件,我想用它作爲我的序列化和反序列化的模板。因爲它可能會隨着時間的推移而變化和增長,所以我希望我可以通過xsd.exesvcutil.exe依靠代碼的生成。 但遺憾iam無法讓它在內輕鬆工作Xamarin AND UWP。 UWP似乎不支持默認的xml東西,所以我不得不使用svcutil.exe來獲取帶有DataContract-Attributes的文件。用於UWP和Xamarin的xsd.exe或svcutil.exe的C#XML序列化

的問題是在Xamarin的System.Runtime.Serialization.XmlSerializableServices.AdDefaultSchema()方法缺失和UWP整個類System.Runtime.Serialization.XmlSerializableServices被missng。

有沒有辦法自動生成Xamarin和UWP的代碼? 如果不是什麼會是另一種方式來實現在這兩個系統中解析XML的簡單方法,或者我應該自己做一個?

+0

爲什麼不使用['XmlReader'](https://developer.xamarin.com/api/type/System.Xml.XmlReader)? – Demitrian

+0

如果將有xsd的更改,我可以自動再次爲序列化和反序列化生成模型。否則,我將不得不調整xsd,部分解析自己並調整模型。至少這是我目前看到的。 – Cyriac

+0

你是否要求一種方法來編程爲xamarin中的複雜xml文件生成類模型? –

回答

2

我發現在以下職位的答案:

how can i use the file that is generated by xsd.exe in windows 10 universal app

我剛纔用XSD.EXE創建*的.cs與模型,這對於xamarin工作正常,沒有任何額外的工作文件。對於uwp項目,我只是將文件從其他項目中鏈接起來,並添加了一些「虛擬」代碼,如上面的帖子中所示。

namespace System 
{ 
    internal class SerializableAttribute : Attribute 
    { 
    } 
} 
namespace System.ComponentModel 
{ 
    internal class DesignerCategoryAttribute : Attribute 
    { 
     public DesignerCategoryAttribute(string _) { } 
    } 
} 

這似乎精細工作的方式和手段是否會有變化的XSD,我纔可以產生一個新的*的.cs與模型文件和不要有由我自己來處理的變化。