如何使用 NewtonSoft Json 序列化 FileInfo 对象



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

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

当然,finfo拥有的属性比 jsonString 拥有的两个属性要多得多。(属性如ExistsDirectoryCreationTimeExtensionIsReadonlyLastAccessTime等( jsonstring只拥有其中两个属性。

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

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

您只看到这两个属性的原因是FileInfo实现了ISerializable接口,并且其GetObjectInfo方法用于重写默认序列化行为。 如果您完全控制了 FileInfo 类(您没有(,则可以应用 [JsonObject] 属性来强制正常的 Json 序列化行为。

我认为在这种情况下,您唯一的选择是编写自己的包装器,其中包含您想要的属性。 属性可以直接调用基础FileInfo属性。

相关内容

  • 没有找到相关文章

最新更新