私はOwinとASP.NET MVC 5アプリケーションを持っています。私は、コントローラのコンストラクタにのILogを注入するnugetパッケージAutofac.Mvc5.Owinを使用していGlobal.asaxにオブジェクトを挿入するには?
using System.Collections.Generic;
namespace MvcApp.Logging
{
public interface ILog
{
void Debug(string format, params object[] args);
void Error(string format, params object[] args);
void Fatal(string format, params object[] args);
void Info(string format, params object[] args);
void Trace(string format, params object[] args);
void Warn(string format, params object[] args);
// custom
void Write(LogType type, object properties, string message, params object[] args);
bool IsDebugEnabled { get; }
bool IsErrorEnabled { get; }
bool IsFatalEnabled { get; }
bool IsInfoEnabled { get; }
bool IsTraceEnabled { get; }
bool IsWarnEnabled { get; }
}
}
:
は、これが私のインタフェースです。このアプローチは完全に機能します。
Owin起動クラス:
builder.RegisterType<Log>().As<ILog>().InstancePerRequest();
今私はGlobal.asax.csクラスとApplication_Startメソッドにアイログインターフェースを注入する必要があります。
これは可能ですか? ILogを注入するためにセットアップする必要があるのは何ですか?
public class MvcApplication : HttpApplication
{
// How to inject ILog here?
protected void Application_Start()
{
// I need write for example this message
ILog.Info("Application starting");
}
}
どうもありがとう
「アプリケーションの開始」をお読み - あなたはそれがあなたのアプリケーションの起動クラスと同じであるアプリの初期化を行う場所です>を... – Legends
IMHO、アプリケーションがデータベースコンテキストにリクエストした場合、 'Application_BeginRequest'または' Application_AuthenticateRequest'に 'Application_Start'に' HttpContext'インスタンスが含まれていないので、それを入れます。 –