2

助けが必要です。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
 {
 }
4

1 に答える 1

1

Autofac がカスタム フォーマッタをマークされたコントローラに追加できるようにするGlobalConfiguration.Configuration.Formatters場合は、フォーマッタをグローバルに使用できるようにし、Autofac がプロパティを挿入できないようにするため、追加する必要はありません。

だからGlobalConfiguration.Configuration.Formatters.Insert電話を切る

次の正確な構文を使用して、フォーマッタを登録します。

builder.Register<MediaTypeFormatter>(c => new UserMediaFormatter())
       .PropertiesAutowired()
       .InstancePerApiControllerType(typeof(UsersController));
于 2013-09-14T10:25:49.537 に答える