gpt4 book ai didi

c# - 如何使用 NewtonSoft Json 序列化 FileInfo 对象?

转载 作者:行者123 更新时间:2023-11-30 21:42:58 24 4
gpt4 key购买 nike

我想使用 json 序列化 FileInfo 对象。到目前为止,我在使用 JsonConvert.serializeOjbect() 方法序列化文件信息对象时得到以下结果。

FileInfo finfo = new FileInfo("drive:\\folderpath\\file.txt");
string jsonString = JsonConvert.SerializeObject(finfo);

当然,finfo 拥有的属性比 jsonString 拥有的这两个属性多得多。(ExistsDirectoryCreationTimeExtensionIsReadonly上次访问时间等)jsonstring 仅包含其中两个属性。

jsonString = {{
"OriginalPath": "drive:\\folderpath\\file.txt",
"FullPath": "drive:\\folderpath\\file.txt"
}}

有没有办法使用 Json 序列化整个对象而不是这两个属性?

最佳答案

您只看到这两个属性的原因是 FileInfo 实现了 ISerializable 接口(interface),并且正在使用它的 GetObjectInfo 方法覆盖默认的序列化行为。如果您可以完全控制 FileInfo 类(您没有),那么您可以应用 [JsonObject] 属性来强制执行正常的 Json 序列化行为。

我认为在这种情况下,您唯一的选择是编写自己的包含所需属性的包装器。您的属性可以直接调用底层 FileInfo 属性。

关于c# - 如何使用 NewtonSoft Json 序列化 FileInfo 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42122152/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com