我的C#項目中有一個類標記爲[Serializable]
屬性。它有RSAKeyValue
類型的屬性:序列化Serializable類中的RSAKeyValue屬性
[XmlElement(PUBLIC_KEY_TAG_NAME)]
public RSAKeyValue Key { get; private set; }
當我試圖序列我的類XML的一個實例,然後反序列化XML回到我的類的實例,我得到:
系統.InvalidOperationException:System.Security.Cryptography.KeySizes不能被序列化,因爲它沒有無參數的構造函數。
這發生在我撥打XmlSerializer.Serialize
時。我確定這是因爲我的類中有RSAKeyValue
屬性,因爲所有其他被序列化的屬性都是簡單的字符串。我能做些什麼呢?我是否應該圍繞正確序列化/反序列化的RSAKeyValue
實例創建自己的包裝類?
下面是一些示例XML可能被反序列化到RSAKeyValue
實例:
<RSAKeyValue>
<Modulus>long string here...</Modulus>
<Exponent>short string here</Exponent>
</RSAKeyValue>
我希望能夠將RSAKeyValue的Modulus和Exponent部分與其他數據一起存儲在XML文檔中。我希望能夠從文件中讀取XML並將其解析到我的類的實例中,然後訪問Key屬性並獲取包含存儲在XML中的Modulus和Exponent的某個類的實例。 – 2010-07-20 18:38:48
然後你只是回答你自己的問題。創建一個只包含Modulus和Exponent的類。從RSAKeyValue填入該課程。序列化您的自定義類。反序列化後,使用它來創建一個新的RSAKeyValue。 – 2010-07-20 18:48:08
Hphph。隨着你的想法......;)現在就開始工作;謝謝! – 2010-07-20 18:50:26