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;
#else
using System.IO;
#endif
namespace ICD.Common.Utils.IO
{
public class IcdTextReader
public class IcdTextReader : IDisposable
{
private readonly TextReader m_TextReader;
@@ -17,5 +17,10 @@ namespace ICD.Common.Utils.IO
{
m_TextReader = textReader;
}
public void Dispose()
{
m_TextReader.Dispose();
}
}
}

View File

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