У меня есть класс в моем проекте С#, отмеченный атрибутом [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>