代わりにconstructor
注射を使用することが好ましい。しかし、あなたがしなければならない場合はAutofac's
標準プロパティ注入アプローチhereを使用することができます。すでに述べたように、FromServices
属性はプロパティの挿入をサポートしていません。しかし、あなたはすでにAutofac
を使用している場合、それは非常に単純でなければなりません:
再び
builder.RegisterType<MyController>().WithProperty("MyProperty", propertyValue);
、constructor
注入を使用することで、フレームワークを戦っていないとして、私の意見で優れている、あなたは第三に頼る必要はありません。 -party IoC。
public class BaseController : Controller
{
protected IDependency Value { get; }
public BaseController([FromServices] IDependency value)
{
Value = value;
}
}
このプロパティは、サブクラスで使用できるようになります。 DI and Controllersの詳細については、公式文書を参照してください。
私はあなたがここで何かを欠いているとは思わない。これらの問題は[MVCチームに報告されました](https://github.com/aspnet/Mvc/issues/3727#issuecomment-210836460)、これまでMicrosoftはこれを無視しているようです。 – Steven
@スティーブンそれは少し衝撃的な読書でした。それについて別の問題を提起する価値があると思いますか?私は技術的な詳細(ReleaseController +別のコンテナを持っている)を100%確信していませんが、ユースケース(私の場合)は非常にシンプルで、私のコントローラにプロパティインジェクションが必要です。 –
私はMicrosoftに新しい問題を提起しても問題ありませんが、なぜあなたはプロパティインジェクションを必要としますか? – Steven