0

IoC / Web api フレームワークの依存関係リゾルバーをデカップリングに使用したい。

XmlFormatter はインターフェイスをシリアル化できません...わかりました。しかし、xml を返すことができない場合、IoC と DependencyResolver の目的は何でしょうか?

私はこれを行うことさえできません:(私のApiControllerのメソッド)

public HttpResponseMessage Get()
        {
            IEnumerable<Project> projects = new List<IProject>() { new Project(), new Project() }.Select(p => p as Project);

            HttpResponseMessage response = Request.CreateResponse<IEnumerable<Project>>(HttpStatusCode.OK, projects);

            return response;
        }

IProjects のリストを作成し、それらを「Project」にキャストします。しかし、応答を作成しているときに、次のようになります。

構成されたフォーマッター 'System.Web.Http.Tracing.Tracers.XmlMediaTypeFormatterTracer' は、タイプ 'WhereSelectListIterator`2' のオブジェクトを書き込めません。

それは XmlMediaTypeFormatterTracer ですか? シリアル化中にエラーをスローするトレースは必要ありません。(ところで: 標準の XMLformatter を独自のものに置き換えました。ただし、「XmlMediaTypeFormatterTracer」は例外をスローします... 情報: 標準のフォーマッタを使用しているときに同じエラーが発生します)

独自の xmlformatter を実装しているにもかかわらず、この XmlMediaTypeFormatterTracer が呼び出されるのはなぜですか?

4

2 に答える 2

4

私の問題は解決しました

config.Formatters.XmlFormatter.UseXmlSerializer = false;

于 2012-10-15T07:35:44.713 に答える
0

アプリケーションでトレースを有効にしましたか? はいの場合、トレース ロジックはフォーマッタをそのラッパー トレーサ フォーマッタにラップします。

于 2012-07-10T18:05:36.153 に答える