我需要一些帮助。我试图使用Autofac来获取一些需要自定义媒体格式化程序的依赖项。我跟踪了Wiki,但有点让人困惑。我试图为媒体格式化程序使用属性注入,因为它需要在全局配置中注册。
代码:
public class UserMediaFormatter : JsonMediaTypeFormatter
{
public UsersRepository repository { get; set; }
}
public class WebApiApplication : System.Web.HttpApplication
{
GlobalConfiguration.Configuration.Formatters.Insert(2, new UserMediaFormatter());
builder.RegisterType(typeof(UserMediaFormatter)).PropertiesAutowired()
.As<MediaTypeFormatter>()
.InstancePerApiControllerType(typeof (UsersController));
}
[AutofacControllerConfiguration]
public class UsersController : ApiController
{
}发布于 2013-09-14 10:25:49
如果您想让Autofac将您的自定义格式化程序添加到标记的控制器中,那么您不需要将它添加到GlobalConfiguration.Configuration.Formatters中,因为它使您的格式化程序全局可用,并且它阻止Autofac向其注入属性。
因此,删除GlobalConfiguration.Configuration.Formatters.Insert调用
并使用以下确切的语法注册您的格式化程序:
builder.Register<MediaTypeFormatter>(c => new UserMediaFormatter())
.PropertiesAutowired()
.InstancePerApiControllerType(typeof(UsersController));https://stackoverflow.com/questions/18745848
复制相似问题