我想使用 json 序列化FileInfo
对象。到目前为止,我在使用该方法序列化文件信息对象时得到JsonConvert.serializeOjbect()
结果如下。
FileInfo finfo = new FileInfo("drive:\folderpath\file.txt");
string jsonString = JsonConvert.SerializeObject(finfo);
当然,finfo
拥有的属性比 jsonString 拥有的两个属性要多得多。(属性如Exists
、Directory
、CreationTime
、Extension
、IsReadonly
、LastAccessTime
等( jsonstring
只拥有其中两个属性。
jsonString = {{
"OriginalPath": "drive:\folderpath\file.txt",
"FullPath": "drive:\folderpath\file.txt"
}}
有没有办法使用 JSON 序列化整个对象而不是这两个属性?
您只看到这两个属性的原因是FileInfo
实现了ISerializable
接口,并且其GetObjectInfo
方法用于重写默认序列化行为。 如果您完全控制了 FileInfo
类(您没有(,则可以应用 [JsonObject] 属性来强制正常的 Json 序列化行为。
我认为在这种情况下,您唯一的选择是编写自己的包装器,其中包含您想要的属性。 属性可以直接调用基础FileInfo
属性。