1

ドキュメントによると :

インターフェイスを使用してITraceWriter、ASP.NET Web API のトレースを書き込みます。のデフォルトの実装ITraceWriterは「no-op」トレーサーです

なぜ私nullは自分のアプリケーションに入るのですか?

    public class WebApiApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            ITraceWriter trace = GlobalConfiguration.Configuration.Services.GetTraceWriter();
            //..........
        }
    }

インスタンスを依存関係としてハンドラ/etc に渡す必要があります。確かに、「no-op」ライターを自分で実装して登録することはできますが...

そして、なぜ古き良きものよりも新しいインターフェイスを好むのでしょうSystem.Diagnosticsか?

4

2 に答える 2

2

Web API には と呼ばれる Tracing nuget パッケージがMicrosoft.AspNet.WebApi.Tracingあり、これを使用して既定の System.Diagnostic トレースを取得できます。

その後、次のことができます。

config.EnableSystemDiagnosticsTracing();
于 2013-06-20T14:44:10.317 に答える
1

Testing and Debuggingによると。トレーサーがパイプラインにないため、
取得できます。null

デフォルトのトレーサーを実装に置き換えることができます:

public static void Register(HttpConfiguration config)
{
   config.Services.Replace(typeof(ITraceWriter), new SimpleTracer());
}  
于 2013-06-20T08:48:49.897 に答える