Asp.net core 在作webapi項目的時候,默認是隻返回json格式的數據的,若是想要開啓xml數據返回,須要在startup裏配置以下:web
public void ConfigureServices(IServiceCollection services) { // Add framework services. services.AddApplicationInsightsTelemetry(Configuration); services.AddMvc() .AddJsonOptions(options => { options.SerializerSettings.ContractResolver = new DefaultContractResolver(); }) .AddXmlDataContractSerializerFormatters(); }
這樣就能夠經過ajax的accept來控制請求須要返回的數據格式了。ajax
這裏須要注意:AddXmlDataContractSerializerFormatters能夠將匿名屬性式化爲xml,而AddXmlSerializerFormatters直接會忽略dynamic/object類型的屬性。json
轉換爲xml格式化的時候你可能會遇到奇葩的問題,以下變成,xml格式中會無緣無故的多出不少d2p1前綴,那麼如何移除xml格式裏的d2p1呢?api
產生這個問題的緣由是由於構造返回結果的多個對象不在同一個命名空間下面,只須要將其放在同一個命名空間便可解決這個問題spa
參考文章:http://stackoverflow.com/questions/6351425/get-rid-of-d2p1-in-xml-created-with-datacontract-in-serialized-class.net