【发布时间】:2010-11-20 03:15:12
【问题描述】:
我正在使用 ASP.NET MVC 2 来实现 Web 服务,并且我有一个自定义的 JsonResult 类:
public abstract class JsonResult : ActionResult
{
public static ISerializer Serializer { get; set; }
public override void ExecuteResult(ControllerContext context)
{
var json = Serializer.Serialize(this);
context.HttpContext.Response.Write(json);
}
}
JsonResult 是所有应序列化为 JSON 数据的结果的抽象基类。它使用ISerializer 进行序列化。
我使用 Ninject 作为我的 IoC 容器。但是,我不太确定应该如何注入 ISerializer 依赖项。我最初是这样做的:
var kernel = new StandardKernel().Bind<ISerializer>().To<JsonNetSerializer>();
JsonResult.Serializer = kernel.Get<ISerializer>();
但它似乎不太对劲。那么我将如何正确注入 Serializer 属性呢?我只想在应用程序启动时注入一次。
【问题讨论】:
标签: c# asp.net-mvc dependency-injection inversion-of-control ninject