В моем проекте на C # есть класс, помеченный атрибутом [Serializable]
.У него есть свойство типа RSAKeyValue
:
[XmlElement(PUBLIC_KEY_TAG_NAME)]
public RSAKeyValue Key { get; private set; }
Когда я пытаюсь сериализовать экземпляр моего класса в XML, а затем десериализовать этот XML обратно в экземпляр моего класса,Я получаю:
System.InvalidOperationException: System.Security.Cryptography.KeySizes не может быть сериализовано, поскольку у него нет конструктора без параметров.
Это происходит, когда я вызываю XmlSerializer.Serialize
.Я уверен, что это из-за свойства RSAKeyValue
в моем классе, так как все остальные свойства, которые сериализуются, являются простыми строками.Что я могу сделать по этому поводу?Должен ли я создать свой собственный класс-оболочку для экземпляра RSAKeyValue
, который правильно сериализует / десериализует?
Вот несколько примеров XML, которые можно десериализовать в экземпляр RSAKeyValue
:
<RSAKeyValue>
<Modulus>long string here...</Modulus>
<Exponent>short string here</Exponent>
</RSAKeyValue>