0

私はasp.net Web APIを使用していますが、個人的にはjsonでデータを処理するのが好きで、クライアントに何を使用HttpResponseMessageするRequest.CreateResponseかを決定させることができます.

ただし、xml データを見ると、ノード名がひどいことがわかります。ファイル名を変更する以外に変更できるのだろうか?たとえば xmlRoot を試しましたが、何もしませんでした。

たとえば、私はこのようなリターンを行います

return Request.CreateResponse<ResponseResult<List<PersonSearchDto>>>(HttpStatusCode.OK, p);

このような名前のルートノードを取得します

ResponseResultOfArrayOfPersonSearchK0AojvId

のような名前に変更できればいいのですがPersons

4

2 に答える 2

0

次の行を に追加しますGlobal.asax.cs

GlobalConfiguration.Configuration.Formatters.XmlDataContractSerializer = true;

そして、この MSDN の記事で説明されているように、[DataMember]とを使用してクラスとプロパティを装飾します。[DataContract]

namespace MyTypes
{
    [DataContract]
    public class PurchaseOrder
    {
        private int poId_value;

        // Apply the DataMemberAttribute to the property.
        [DataMember]
        public int PurchaseOrderId
        {

            get { return poId_value; }
            set { poId_value = value; }
        }
    }
}
于 2013-04-21T00:57:59.237 に答える
0

問題を解決する正しい方法は、CollectionDataContractAttribute を使用することです。

http://msdn.microsoft.com/en-us/library/system.runtime.serialization.collectiondatacontractattribute.aspx

したがって、あなたの場合、次のようなタイプを持つことができます:

[CollectionDataContract(Name = "Persons")]
public class PersonResults : List<PersonSearchDto>
{
}
于 2013-04-23T01:15:17.243 に答える