perf: Disposing text readers

This commit is contained in:
Chris Cameron
2018-08-07 17:09:23 -04:00
parent b1b12c76dd
commit eb7f3033fb
2 changed files with 18 additions and 7 deletions

View File

@@ -1,13 +1,13 @@
#if SIMPLSHARP using System;
#if SIMPLSHARP
using Crestron.SimplSharp.CrestronIO; using Crestron.SimplSharp.CrestronIO;
#else #else
using System.IO; using System.IO;
#endif #endif
namespace ICD.Common.Utils.IO namespace ICD.Common.Utils.IO
{ {
public class IcdTextReader public class IcdTextReader : IDisposable
{ {
private readonly TextReader m_TextReader; private readonly TextReader m_TextReader;
@@ -17,5 +17,10 @@ namespace ICD.Common.Utils.IO
{ {
m_TextReader = textReader; m_TextReader = textReader;
} }
public void Dispose()
{
m_TextReader.Dispose();
}
} }
} }

View File

@@ -205,8 +205,11 @@ namespace ICD.Common.Utils.Json
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
using (JsonTextWriter writer = new JsonTextWriter(new IcdStringWriter(builder).WrappedStringWriter)) using (IcdStringWriter stringWriter = new IcdStringWriter(builder))
serializeMethod(writer); {
using (JsonTextWriter writer = new JsonTextWriter(stringWriter.WrappedStringWriter))
serializeMethod(writer);
}
return builder.ToString(); return builder.ToString();
} }
@@ -224,8 +227,11 @@ namespace ICD.Common.Utils.Json
if (deserializeMethod == null) if (deserializeMethod == null)
throw new ArgumentNullException("deserializeMethod"); throw new ArgumentNullException("deserializeMethod");
using (JsonTextReader reader = new JsonTextReader(new IcdStringReader(json).WrappedStringReader)) using (IcdStringReader stringReader = new IcdStringReader(json))
return deserializeMethod(reader); {
using (JsonTextReader reader = new JsonTextReader(stringReader.WrappedStringReader))
return deserializeMethod(reader);
}
} }
/// <summary> /// <summary>