diff --git a/src/SoapCore/ConcurrentXmlNamespaceLookup.cs b/src/SoapCore/ConcurrentXmlNamespaceLookup.cs index 5cf8594f..f1c54a2f 100644 --- a/src/SoapCore/ConcurrentXmlNamespaceLookup.cs +++ b/src/SoapCore/ConcurrentXmlNamespaceLookup.cs @@ -17,6 +17,7 @@ public void AddNamespace(string prefix, string uri) _uriToPrefix.AddOrUpdate(uri, _ => prefix, (_, _) => prefix); _prefixToUri.AddOrUpdate(prefix, _ => uri, (_, _) => uri); } + public XmlNamespaceManager ToXmlNamespaceManager() { var r = new XmlNamespaceManager(new NameTable()); @@ -24,6 +25,7 @@ public XmlNamespaceManager ToXmlNamespaceManager() { r.AddNamespace(e.Key, e.Value); } + return r; } } diff --git a/src/SoapCore/ServiceBodyWriter.cs b/src/SoapCore/ServiceBodyWriter.cs index 5b72e78d..c526f5b6 100644 --- a/src/SoapCore/ServiceBodyWriter.cs +++ b/src/SoapCore/ServiceBodyWriter.cs @@ -81,6 +81,7 @@ private static void WriteStream(XmlDictionaryWriter writer, object value) block = ArrayPool.Shared.Rent(blockSize); } } + ArrayPool.Shared.Return(block); } @@ -208,6 +209,7 @@ private void OnWriteXmlSerializerBodyContents(XmlDictionaryWriter writer) xElement.WriteTo(writer); writer.WriteEndElement(); } + //https://github.com/DigDes/SoapCore/issues/385 else if (_operation.DispatchMethod.GetCustomAttribute()?.Style == OperationFormatStyle.Rpc) {