37

Web API を使用して以下の xml 応答から名前空間を削除するにはどうすればよいですか?

<ApiDivisionsResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/GrassrootsHoops.Models.Api.Response">
<Divisions xmlns:d2p1="http://schemas.datacontract.org/2004/07/GrassrootsHoops.Data.Entities">
<d2p1:Page>1</d2p1:Page>
<d2p1:PageSize>10</d2p1:PageSize>
<d2p1:Results xmlns:d3p1="http://schemas.datacontract.org/2004/07/GrassrootsHoops.Models.Api.Response.Divisions"/>
<d2p1:Total>0</d2p1:Total>
</Divisions>
</ApiDivisionsResponse>
4

7 に答える 7

43

XmlSerializerオプション1は、での使用に切り替えることGlobalConfigurationです。

config.Formatters.XmlFormatter.UseXmlSerializer = true;

オプション2は、モデルを次のように装飾することです。

[DataContract(Namespace="")]

(そうする場合は、メンバーを[DataMember]属性で装飾する必要があります)。

于 2012-09-25T22:05:29.373 に答える
3

応答モデルを保持するプロジェクトでProperties/AssemblyInfo.cs

追加

using System.Runtime.Serialization;

そして一番下に追加

[assembly: ContractNamespace("", ClrNamespace = "Project.YourResponseModels")]

Project.YourResponseModels応答モデルが配置されている実際の名前空間に置き換えます。名前空間ごとに 1 つ追加する必要があります

于 2016-07-21T18:40:04.267 に答える