Как опустить xmlns = "http://tempuri.org/" в выводе веб-сервиса - PullRequest
2 голосов
/ 13 марта 2012

Можете ли вы помочь мне, как я могу опустить объявление xmlns="http://tempuri.org/" в каждом элементе моего вывода из веб-службы asp.net (asmx)?

<?xml version="1.0" encoding="utf-16"?>
<ArrayOfData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <DataItem>
    <Id xmlns="http://tempuri.org/">463d931f-5f14-447d-99cd-289cae2a5b6d</Id>
    <Created xmlns="http://tempuri.org/">2012-03-13T13:47:13.8626511+01:00</Created>
    ...
  </DataItem>
  ...

Веб-служба определяется следующим образом:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]    
public class DataWebService : System.Web.Services.WebService
{

    [WebMethod]
    public DataCollection GetData()
    {
        ...
    }
}   

Элемент данных является объектом EF:

[EdmEntityTypeAttribute(NamespaceName="DataEntityModel", Name="DataItem")]
[Serializable()]
[DataContractAttribute(IsReference=true)]
public partial class DataItem : EntityObject
{

    [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
    [DataMemberAttribute()]
    public global::System.Guid Id
    {
       ...
    }
}


public class DataItemCollection : Collection<DataItem>
{

}

Когда я удалил [WebService(Namespace = "http://tempuri.org/")] из атрибутов, результат был тот же.

1 Ответ

2 голосов
/ 13 марта 2012

Не удалять [WebService(Namespace = "http://tempuri.org/")]. Вместо этого используйте свое собственное пространство имен. Может быть, что-то вроде http://webservices.yourcompany.com/datawebservice. Вы также можете поместить явные пространства имен в свои сущности.

Однако я бы также рекомендовал вам прекратить использование служб ASMX и вместо этого использовать WCF.

...