コード例は次のとおりです。
public interface IService<TEntity> {
IContext Context { get; set; }
//unimportant methods
bool Validate(TEntity entity);
void Add(TEntity enttity);
}
public class UsersController : Controller {
private IService<User> _service;
public MyController(IService<User> service){
_service = service;
_service.Context = ControllerContext;
}
}
ASP.NET MVC アプリでコントローラーを作成するために AutofacControllerFactory を使用しています。すべてのコントローラーのコンストラクターでこのコード行を削除することは可能ですか:
_service.Context = ControllerContext;
つまり、このプロパティを ControllerContext で自動的に設定することは可能ですか? すべての IService 実装には設定可能な IContext プロパティがあるため、これが可能になるはずです。
AutofacControllerFactory を拡張する必要がありますか、またはこれを行う標準的な方法はありますか?