я следующий классDataContractSerializer
[DataContract(Namespace = "", Name = "VersionRange")]
public sealed class VersionRange
{
[DataMember(Name = "Lower")]
private readonly Version _lower;
[DataMember(Name = "Upper")]
private readonly Version _upper;
public VersionRange(Version lower, Version upper)
{
_lower = lower;
_upper = upper;
}
}
и я хочу, чтобы де сериализации из следующего XML
<?xml version="1.0" encoding="utf-8"?>
<VersionRange>
<Lower>1.2.3.4</Lower>
<Upper>5.6.7.8</Upper>
</VersionRange>
Я попытался архивировать это путем реализации IDataContractSurrogate, но так и не удалось вообще. Я возвращаю typeof(string)
для typeof(Version)
в GetDataContractType
Метод десериализации не выполняется, и метод GetDeserializedObject не вызывается.
Итак, есть ли возможность использовать стандартный класс версии и получить десериализацию от "a.b.c.d"
?
Блестящая идея! Благодаря! – adontz
Кроме того, если ваша 'private Version _lower' должна оставаться' readonly', вы можете ее установить, используя отражение в методе '_lowerStr_set'. – Seph
почему -1 голос? – Seph