3

WCF を使用している場合、DataContractResolver を置き換えるにはさまざまな方法があります。私は Web Api で同じことをしたいと考えています。私が見つけた唯一の拡張ポイントはこれです:

GlobalConfiguration.Configuration.Formatters.XmlFormatter.SetSerializer<Person>(new DataContractSerializer(typeof(Person), null, Int32.MaxValue, false, false, null, new TypeNameVersioning()));

(疑似コード)の行で何かを探しています:

GlobalConfiguration.Configuration.Formatters.XmlFormatter.SetDataContractResolver = new TypeNameVersioning();
4

1 に答える 1

0

XmlSerializer を使用する場合は、

GlobalConfiguration.Configuration.Formatters.XmlFormatter.UseXmlSerializer = true

それがあなたのニーズを満たさない場合は、そうしてください

GlobalConfinguration.Configuration.Formatters.Clear();
GlobalConfinguration.Configuration.Formatters.Add(new YourOwnFormatterCanGoHere());

もう1点だけ。私は常に Web API を使用しており、ここ数年使用していますが、フォーマッターはほとんど使用していません。HttpContent の派生バージョンで HttpResponseMessage を返します。同じことをすべきだと言っているのではなく、Web API でさまざまなことを行う方法があると言っているだけです。フォーマッターは必要ありません。

于 2014-01-15T14:06:17.390 に答える