「ASP.NET Web APIは、相手が受け付けるフォーマットによって出力フィーマットを自動切り替えするが、標準仕様によってはXMLと決まっていて、JSON出力すると逆に仕様的合成が失われてしまう場合がある。ところが、必ずXMLを出力するというのがやたら面倒だったのでメモだ」
「ポイントはなに?」
「new StringContentの利用。new ObjectContentだと、常にオブジェクトをシリアライズしようとして上手く機能しなかった」
「どうやって解決したの?」
「ObjectContentで上手く行かないので、ならばStringContentがきっとあると思って山勘で書いてみたらあった」
「なんて奴だ」
public HttpResponseMessage Get(int id)
{
XDocument doc = new XDocument();
doc.Add(new XElement("root"));
var msg = Request.CreateResponse(HttpStatusCode.OK);
msg.Content = new StringContent(doc.ToString(), Encoding.UTF8, "application/xml");
return msg;
}