Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/duplicati/duplicati.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorverhoek <30193551+verhoek@users.noreply.github.com>2018-11-29 11:32:42 +0300
committerverhoek <30193551+verhoek@users.noreply.github.com>2018-11-29 11:32:42 +0300
commit9ce8471bdec56b94c5129ba1e9e42490f8629b9d (patch)
tree1ad80a879745032d00b193f91cc51be5c526d863 /Duplicati/Library/Common/IO
parentbb7062d34b7c9006d515f67fc726cb83292b831e (diff)
Cache serializer.
Diffstat (limited to 'Duplicati/Library/Common/IO')
-rw-r--r--Duplicati/Library/Common/IO/SystemIOWindows.cs26
1 files changed, 22 insertions, 4 deletions
diff --git a/Duplicati/Library/Common/IO/SystemIOWindows.cs b/Duplicati/Library/Common/IO/SystemIOWindows.cs
index 0f8ddcc13..e7694a812 100644
--- a/Duplicati/Library/Common/IO/SystemIOWindows.cs
+++ b/Duplicati/Library/Common/IO/SystemIOWindows.cs
@@ -91,11 +91,29 @@ namespace Duplicati.Library.Common.IO
}
}
+ private static Newtonsoft.Json.JsonSerializer _cachedSerializer;
+
+ private Newtonsoft.Json.JsonSerializer Serializer
+ {
+ get
+ {
+ if (_cachedSerializer != null)
+ {
+ return _cachedSerializer;
+ }
+
+ _cachedSerializer = Newtonsoft.Json.JsonSerializer.Create(
+ new Newtonsoft.Json.JsonSerializerSettings { Culture = System.Globalization.CultureInfo.InvariantCulture });
+
+ return _cachedSerializer;
+ }
+ }
+
private string SerializeObject<T>(T o)
{
using (var tw = new System.IO.StringWriter())
{
- Newtonsoft.Json.JsonSerializer.Create(new Newtonsoft.Json.JsonSerializerSettings { Culture = System.Globalization.CultureInfo.InvariantCulture }).Serialize(tw, o);
+ Serializer.Serialize(tw, o);
tw.Flush();
return tw.ToString();
}
@@ -104,8 +122,9 @@ namespace Duplicati.Library.Common.IO
private T DeserializeObject<T>(string data)
{
using (var tr = new System.IO.StringReader(data))
- return (T)Newtonsoft.Json.JsonSerializer.Create(new Newtonsoft.Json.JsonSerializerSettings { Culture = System.Globalization.CultureInfo.InvariantCulture }).Deserialize(tr, typeof(T));
-
+ {
+ return (T)Serializer.Deserialize(tr, typeof(T));
+ }
}
private System.Security.AccessControl.FileSystemSecurity GetAccessControlDir(string path)
@@ -134,7 +153,6 @@ namespace Duplicati.Library.Common.IO
path, true);
}
-
private static void PathTooLongVoidFuncWrapper<U, T>(Func<string, T> nativeIOFunc,
Func<string, U> alternativeIOFunc,
string path, bool prefixWithUnc = false)