Удалить пространство имен из WebService

У меня есть веб-сервисы .Net, которые вызываются из flex. Наш программист получает следующий xml при вызове функции веб-сервиса:

<FunctionName xmlns="WSNamespace" 
  xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <FunctionName>Xml itself</FunctionName>

Он хотел бы получить все те же, но без имен, так как они нам не нужны. Как это можно сделать на части .Net?


person Yaroslav Yakovlev    schedule 15.02.2010    source источник


Ответы (1)


Использовать

[WebService(Namespace = "")]

если вы не хотите пространств имен. Но это не предпочтительный путь. Вместо этого вы можете использовать XmlNamespaceDeclaration, чтобы получить полное пространство имен. Нравится

[XmlNamespaceDeclarations]
public XmlSerializerNamespaces xmlns
{
   get
   {
      XmlSerializerNamespaces xsn = new XmlSerializerNamespaces();
      xsn.Add("me", "http://anamespace/");
      return xsn;
   }

   set 
   {
      // needed for serialization 
   }
}

Дополнительные сведения см. по адресу: http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlnamespacedeclarationsattribute.aspx

person Ulve    schedule 15.02.2010
comment
comment
-1, так как он сказал, что ему не нужны пространства имен. Мы оба знаем, что это плохая идея, но он этого хочет, и, возможно, flex слишком глуп, чтобы иметь дело с пространствами имен. - person John Saunders; 16.07.2010