你能帮助我如何在asp.net web service(asmx)的输出中的每个元素中省略xmlns="http://tempuri.org/"
声明?
<?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>
...
Web服务定义如下:
[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/")]
时,结果是相同的。
答案 0 :(得分:2)
不要删除[WebService(Namespace = "http://tempuri.org/")]
。相反,使用您自己的命名空间。也许像http://webservices.yourcompany.com/datawebservice
这样的东西。您还可以在实体上放置显式名称空间。
但是,我还建议您停止使用ASMX服务,而是使用WCF。