我想使用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序列化整个对象而不是这两个属性?
答案 0 :(得分:1)
您只看到这两个属性的原因是FileInfo
实现了ISerializable
接口,并且正在使用其GetObjectInfo
方法来覆盖默认的序列化行为。如果您完全控制FileInfo
类(您不会这样做),则可以应用[JsonObject]属性来强制执行正常的Json序列化行为。
我认为在这种情况下你唯一的选择就是编写自己的包装器,其中包含你想要的属性。您的属性可以直接调用基础FileInfo
属性。