From 530aa0499983f00fbc916b68e3915b2e50dd84e9 Mon Sep 17 00:00:00 2001 From: Alex Reynolds Date: Fri, 22 Mar 2019 10:34:05 +0000 Subject: [PATCH] Fix #232 - support base types from different namespaces --- src/SoapCore/MetaWCFBodyWriter.cs | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/SoapCore/MetaWCFBodyWriter.cs b/src/SoapCore/MetaWCFBodyWriter.cs index 3c28ebbe..6631b363 100644 --- a/src/SoapCore/MetaWCFBodyWriter.cs +++ b/src/SoapCore/MetaWCFBodyWriter.cs @@ -575,7 +575,21 @@ private void WriteComplexType(XmlDictionaryWriter writer, Type type) writer.WriteStartElement("xs:complexContent"); writer.WriteStartElement("xs:extension"); - writer.WriteAttributeString("base", $"tns:{type.BaseType.Name}"); + + var modelNamespace = GetModelNamespace(type.BaseType); + + var typeName = type.BaseType.Name; + + if (_schemaNamespace != modelNamespace) + { + var ns = $"q{_namespaceCounter++}"; + writer.WriteAttributeString("base", $"{ns}:{typeName}"); + writer.WriteAttributeString($"xmlns:{ns}", modelNamespace); + } + else + { + writer.WriteAttributeString("base", $"tns:{typeName}"); + } } writer.WriteStartElement("xs:sequence");