C# 如何使用NewtonSoft Json序列化FileInfo对象?
我想使用json序列化C# 如何使用NewtonSoft Json序列化FileInfo对象?,c#,serialization,json.net,C#,Serialization,Json.net,我想使用json序列化FileInfo对象。 到目前为止,在使用JsonConvert.serializeOjbect()方法序列化文件信息对象时,我得到了以下结果 FileInfo finfo = new FileInfo("drive:\\folderpath\\file.txt"); string jsonString = JsonConvert.SerializeObject(finfo); 当然,finfo拥有的属性比jsonString拥有的属性多得多。 (属性如存在,目录,创建时
FileInfo
对象。
到目前为止,在使用JsonConvert.serializeOjbect()
方法序列化文件信息对象时,我得到了以下结果
FileInfo finfo = new FileInfo("drive:\\folderpath\\file.txt");
string jsonString = JsonConvert.SerializeObject(finfo);
当然,finfo
拥有的属性比jsonString拥有的属性多得多。
(属性如存在
,目录
,创建时间
,扩展
,IsReadonly
,LastAccessTime
等)
jsonstring
仅包含其中两个属性
jsonString = {{
"OriginalPath": "drive:\\folderpath\\file.txt",
"FullPath": "drive:\\folderpath\\file.txt"
}}
有没有办法用Json序列化整个对象而不是这两个属性?之所以只看到这两个属性,是因为
FileInfo
实现了ISerializable
接口,它的GetObjectInfo
方法用于覆盖默认的序列化行为。如果您完全控制了FileInfo
类(您没有),那么您可以应用[JsonObject]属性来强制执行正常的Json序列化行为
我认为在这种情况下,您唯一的选择是编写包含所需属性的自己的包装器。您的属性可以直接调用底层的FileInfo
属性。与。同样的方法也应该有效。