a deserialización de @XML solo funciona con espacio de nombres en xml

La forma más simple de hacer que funcione la deserialización de ServiceStack xml es cuando el xml contiene un espacio de nombres. Sin embargo, el xml que recibo no contiene espacios de nombres. El ejemplo de trabajo más simple:

[Serializable]
public class test
{

}

class Program
{
   static void Main(string[] args)
   {
       string xml="<test xmlns=\"http://schemas.datacontract.org/2004/07/\"></test>";
       var result = ServiceStack.Text.XmlSerializer.DeserializeFromString<test>(xml);
   }
}

Sin embargo, eso no es lo que quiero. Quiero que lo siguiente se deserialice, ya que ese es el xml que obtengo de varios servicios:

string xml="<test></test>";

Pero eso me da el siguiente error:

DeserializeDataContract: Error converting type: Error in line 1 position 7. 
Expecting element 'test' from namespace 
'http://schemas.datacontract.org/2004/07/'.. 
Encountered 'Element'  with name 'test', namespace ''.

Lo intenté

[Serializable]
[XmlRoot("test", Namespace = "")]
public class test

No puedo crear un nuevo serializador porque ServiceStack.Text.XmlSerializer es estático. Necesito elegir Microsoft XmlSerializer O ServiceStack (no ambos). Significado: si no puedo hacer que este sencillo ejemplo funcione, debo omitir una parte muy útil del paquete ServiceStack. Lo último que quiero es inyectar un espacio de nombres ficticio en el xml entrante.

Respuestas a la pregunta(2)

Su respuesta a la pregunta