diff --git a/src/Core/WinSWCore/ServiceDescriptor.cs b/src/Core/WinSWCore/ServiceDescriptor.cs index c21865c..e39193f 100755 --- a/src/Core/WinSWCore/ServiceDescriptor.cs +++ b/src/Core/WinSWCore/ServiceDescriptor.cs @@ -71,8 +71,7 @@ namespace winsw { using(var reader = new StreamReader(BasePath + ".xml")) { - string xml = reader.ReadToEnd(); - dom = ServiceDescriptor.XmlValidation(xml); + dom = ServiceDescriptor.XmlValidation(reader); } } catch (XmlException e) @@ -110,11 +109,11 @@ namespace winsw // ReSharper disable once InconsistentNaming public static ServiceDescriptor FromXML(string xml) { - return new ServiceDescriptor(XmlValidation(xml)); + return new ServiceDescriptor(XmlValidation(new StringReader(xml))); } - public static XmlDocument XmlValidation(string xml) + public static XmlDocument XmlValidation(TextReader textReader) { XmlReaderSettings settings = new XmlReaderSettings(); Assembly a = Assembly.GetExecutingAssembly(); @@ -135,7 +134,7 @@ namespace winsw } } - var reader = XmlReader.Create(new StringReader(xml), settings); + var reader = XmlReader.Create(textReader, settings); var xmlDoc = new XmlDocument(); xmlDoc.Load(reader); diff --git a/src/Test/winswTests/ServiceDescriptorTests.cs b/src/Test/winswTests/ServiceDescriptorTests.cs index ef2dc24..6b88c7d 100644 --- a/src/Test/winswTests/ServiceDescriptorTests.cs +++ b/src/Test/winswTests/ServiceDescriptorTests.cs @@ -456,7 +456,7 @@ $@" "; - Assert.That(() => ServiceDescriptor.XmlValidation(seedXml), Throws.Exception.TypeOf()); + Assert.That(() => ServiceDescriptor.XmlValidation(new StringReader(seedXml)), Throws.Exception.TypeOf()); } } }