- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个简单的不可变 POCO 定义为:
public sealed class Person
{
public Person(string name)
{
Name = name;
TimeStamp = DateTimeOffset.UtcNow;
}
public DateTimeOffset TimeStamp { get; }
public string Name { get; }
}
然后我进行一个简单的串行反序列化:
var p = new Person("Mr Right").Dump();
var ser = JSON.Serialize(p).Dump();
// Throws Deserialization Exception, Error occured building a deserializer,
// Expected a parameterless constructor...
JSON.Deserialize<Person>(ser).Dump();
序列化成功产生:
{"TimeStamp":"/Date(1456412550349+0000)/","Name":"Mr Right"}
但是反序列化抛出异常,知道如何修复它吗? JIL
是否支持使用参数化构造函数对类型进行反序列化?
最佳答案
正如您所注意到的,Jil 不支持没有无参数构造函数的反序列化类型*。这是因为没有完全可靠的方法将构造函数的参数映射到公共(public)成员(字段和属性)。
当 Jil 反序列化时,它会创建一个给定类型的空对象,然后设置它在 JSON 流中遇到的每个成员。如果没有默认构造函数,就不可能创建空对象。
*有两个异常(exception),匿名类型和原始包装类型。匿名类型在参数和成员之间具有语言定义的映射,并且 primitive wrapper类型是单参数(并且选择加入) - 两种情况都是可解析的,而一般情况则不然。
关于c# - 如何使用 JIL 通过参数化构造函数反序列化类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35631019/
是否有一个属性可以防止 Jil 序列化为 null 的属性? 在 Newtonsoft 中是: [JsonProperty(NullValueHandling = NullValueHandling.
我正在尝试编写一个 autosys JIL,它会在作业不存在时创建该作业,否则会对其进行更新。我发誓有一个命令,比如“update_or_create”之类的,但我在任何地方都找不到它。 最佳答案 共
我有一个简单的不可变 POCO 定义为: public sealed class Person { public Person(string name) { Name
我们使用 AutoSys 进行作业调度,我发现自己编写了很多 JIL(作业指令语言)脚本来删除框并由于小的作业更改(例如开始时间等)而重新插入它们。有没有可以使用的更新命令? CA 的 AutoSys
在我们的应用程序中,我们在使用动态对象时遇到问题,这是使用 Jil 进行 JSON 反序列化的结果。以下代码只是为了说明问题。 void Main() { var modelJson = "{
我将简单的反序列化运行为自己的类型 Event : JSON.Deserialize(text); 除了: An exception of type 'Jil.DeserializationExcep
如何在移动小部件 (JIL/W3C) 中存储数据。 Widget.setPreferenceForKey() 是唯一的选择吗? 最佳答案 您可以使用 Widget.setPreferenceForKe
我是 AutoSys 的新手。 这是我创建的简单的 JIL 文件,但它不断出错: jil - 错误 - 重定向失败。 insert_job: summary_report job_type:
我如何在 autosys 中设置一个从下午 4 点到下午 5 点每 10 分钟运行一次的作业? 请帮助我如何指定开始时间参数。我是这个 JIL 脚本的新手。 还有,我在哪里可以获得有关使用 JIL 脚
BOND是一个用于处理模式化数据的跨平台框架。它支持跨语言的反序列化和强大的通用机制来有效地操作数据。 Bond 在 Microsoft 的大规模服务中得到广泛使用。 它是用 Haskell 编写的,
我是一名优秀的程序员,十分优秀!