Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用NewtonSoft Json序列化FileInfo对象?_C#_Serialization_Json.net - Fatal编程技术网

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

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拥有的属性多得多。 (属性如存在,目录,创建时

我想使用json序列化
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
属性。

与。同样的方法也应该有效。