Я сталкиваюсь с проблемой, когда определяю поле типа параметра при сериализации для JSON.
До работы (без вариантов)
[<DataContract>]
type Article = {
[<field: DataMemberAttribute(Name="version") >]
version: string
}
После выдает ошибку (с опцией)
[<DataContract>]
type Article = {
[<field: DataMemberAttribute(Name="version") >]
version: string option
}
метод вызвал исключение: System.Runtime.Serialization.SerializationException: Ожидается состояние «Элемент».. Обнаружен «Текст» с именем «», пространство имен».
Связанный код
let response = request.GetResponse() :?> HttpWebResponse
use reader = new StreamReader(response.GetResponseStream())
use memoryStream = new MemoryStream(ASCIIEncoding.Default.GetBytes(reader.ReadToEnd()))
let result = (new DataContractJsonSerializer(typeof<Article>)).ReadObject(memoryStream) :?> Article
DataContractJsonSerializer
не знает оoption
. Не имеет встроенного способа десериализации. ИспользуйтеNullable
. - person Fyodor Soikin   schedule 16.03.2018[<field: DataMemberAttribute(Name="version") >] version: string option Nullable
? - person App2015   schedule 16.03.2018