標準の ODataMediaTypeFormatters の動作をカスタマイズしようとしていますが、MediaTypeFormatter を拡張する別の型でそれらをラップすることで実現しました。例えば
var formatters = ODataMediaTypeFormatters
.Create(serialiserProvider, deserialiserProvider)
.Select(formatter => new Wrapper(formatter));
config.Formatters.InsertRange(0, formatters);
WebAPI 構成メソッドが実行された後、config.Formatters には 12 の項目が含まれます (そのうちの 7 つはラップされたフォーマッターです)。
ただし、応答がシリアル化されている場合、config.Formatters には 17 個の項目が含まれます。これは、標準の OData フォーマッタがある時点で再度追加されたためです。次に、ラップされたバージョンよりも、関連する標準フォーマッタが優先して使用されます。
この再追加がいつ発生し、それを防ぐことができるかどうか、またはどのように防ぐことができるかを誰かが知っていますか?