私はNinjectを追加する 依存性注入
- (ジェイソンの答え)How can I implement Ninject or DI on asp.net Web Forms?で見つかった以下のソリューションを試してみました。ウェブLIB
- はApp_Start/NinjectWebCommon.cs/RegisterServices方法
- 使用あなたのページに注射属性にカスタムバインディングを登録します(またNinject.Web.CommonとNinject LIBSをダウンさせるだろう)
ASP.NET Webアプリケーションでうまく動作します。
問題は、Webアプリケーションではなく、というWebサイトウェブサイトでDIのためにNinjectを使いたいという問題です。
私はNinjectWebCommon/RegisterServicesでカスタムバインディングを登録:ウェブページで
private static void RegisterServices(IKernel kernel)
{
kernel.Bind<ITestRepository>().To<TestRepository>();
}
を、私はそれを注入:
public partial class _Default : System.Web.UI.Page
{
[Inject]
public ITestRepository _repository { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
System.Diagnostics.Trace.WriteLine(_repository.ExecuteOperation());
}
}
それは常にnull参照の例外をスローしNinjectWebCommon.cs内部のブレークポイントがありますWebアプリケーションとは異なり、決して到達しませんでした。
Ninject 3をWebサイトで動作させるには、他に何が必要ですか?
デバッガがアタッチするのが遅すぎるため、ブレークポイントがヒットすることに注意してください。 'Debug.Break()'を 'kernel.Bind <...> ... 'の前に書くと、その行にヒットします。 – nebffa