(反)序列化对象的 属性 而不获取对象的其余部分
(de)serialize an property of an object without getting the rest of the object
我正在尝试围绕现有 class 编写一个半透明包装器,我希望它能够模仿另一个 class 的序列化。
例如,给定以下 class:
class Foo
{
[JsonConverter(CustomConverter)]
string Foo;
}
我希望我的对象的自定义序列化程序使用 Foo
指定的 CustomConverter
序列化它自己的 Foo
属性。我还需要它来处理其他事情,例如 JSON.Net 指定和使用的 ObjectCreationHandling
。
有没有办法基本上告诉 JsonSerializer
"deserialize to this type, but as if it was a this property on this object",还是我必须手动查找属性并相应地进行设置?
答案似乎是创造性地使用 IContractResolver
。如果其他人好奇,我可以在完成后尝试 post 我的完整解决方案。
我正在尝试围绕现有 class 编写一个半透明包装器,我希望它能够模仿另一个 class 的序列化。
例如,给定以下 class:
class Foo
{
[JsonConverter(CustomConverter)]
string Foo;
}
我希望我的对象的自定义序列化程序使用 Foo
指定的 CustomConverter
序列化它自己的 Foo
属性。我还需要它来处理其他事情,例如 JSON.Net 指定和使用的 ObjectCreationHandling
。
有没有办法基本上告诉 JsonSerializer
"deserialize to this type, but as if it was a this property on this object",还是我必须手动查找属性并相应地进行设置?
答案似乎是创造性地使用 IContractResolver
。如果其他人好奇,我可以在完成后尝试 post 我的完整解决方案。