title: ServiceStack: Impossible to use SOAP with custom namespace when AuthFeature is enabled?
body: <p>I have a need to host a couple SOAP12 messages in my current SS webapi. I have set up all of the namespaces according to the rules and everything works as expected, to some extent. I can use multiple tools to send SOAP to the service(s) and they work. I have successfully added them as a Service Reference in a Visual Studio project where they work; at least until I add the AuthFeature. As soon as I add the AuthFeature or any other native SS service, I can no longer add the Service Reference. </p>
  
  <p>My investigation has lead me to the namespace difference between the DataContract(s) in the ServiceStack.ServiceInterface.Auth namespace used in the AuthService. I don't want this to be just limited to AuthService though, the same is applicable when the SwaggerFeature is added and the Resources service is set up. </p>
  
  <p>It is imperative that these two messages be available in SOAP and the client must have the ability to add them as a Service Reference to consume them. </p>
  
  <p>My question: Is there any way to set the DataContract namespace(s) for the native SS services so as to keep their namespace consistent with our DataContract namespace? I understand that I "could" compile and maintain my own version of SS where I would have the ability to change the ContractNamespace attributes of those causing issues however that would cause a lot of undo pain in maintenance especially when attempting to keep SS updated from its original source.</p>
  
  <p>I realize that attributes ([DataContract]) are compile time constants basically and when ServiceStack is compiled the namespace is getting set. I am looking for any alternatives...</p>
  
  <p>Taken from my AppHost:</p>
  
  <pre><code>SetConfig( new EndpointHostConfig
              {
                  MetadataTypesConfig = new ServiceStack.Common.ServiceModel.MetadataTypesConfig(
                      addDefaultXmlNamespace: Namespaces.Services.NS_2013_01 ),
                  WsdlServiceNamespace = Namespaces.Services.NS_2013_01,
                  WsdlSoapActionNamespace = Namespaces.Services.NS_2013_01,
                  //WsdlServiceTypesNamespace
              } );
  </code></pre>
  
  <p>Taken from my AssemblyInfo:</p>
  
  <pre><code>[assembly: ContractNamespace( "Foo", ClrNamespace = "MvcApplication1.ServiceInterface" )]
  </code></pre>