首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Autofac、WebAPI和

Autofac、WebAPI和
EN

Stack Overflow用户
提问于 2013-09-11 15:50:56
回答 1查看 496关注 0票数 2

我需要一些帮助。我试图使用Autofac来获取一些需要自定义媒体格式化程序的依赖项。我跟踪了Wiki,但有点让人困惑。我试图为媒体格式化程序使用属性注入,因为它需要在全局配置中注册。

代码:

代码语言:javascript
复制
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
 {
 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-14 10:25:49

如果您想让Autofac将您的自定义格式化程序添加到标记的控制器中,那么您不需要将它添加到GlobalConfiguration.Configuration.Formatters中,因为它使您的格式化程序全局可用,并且它阻止Autofac向其注入属性。

因此,删除GlobalConfiguration.Configuration.Formatters.Insert调用

并使用以下确切的语法注册您的格式化程序:

代码语言:javascript
复制
builder.Register<MediaTypeFormatter>(c => new UserMediaFormatter())
       .PropertiesAutowired()
       .InstancePerApiControllerType(typeof(UsersController));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18745848

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档