簡単な質問私は推測しますが、私のコントローラのための基本クラスを取得しようと1時間を費やして、いくつかのサービスをプロパティ注入によって注入しました。プロパティーは最初は保護されていましたが、オブジェクトを公開するように変更した後はオブジェクトがnullに戻りました。プロパティを保護してIoCを動作させるにはどうしてですか?Ninjectが基本クラスの保護されたプロパティを解決しないのはなぜですか?
これは私の設定です。 NinjectMVC3 App_Start
private static void RegisterServices(IKernel kernel)
{
kernel.Bind(typeof(LoggingInterface.ILogger<>)).To(typeof(Log4NetLogger<>));
kernel.Bind<IRepository>().To<Repository>();
kernel.Bind<IUserService>().To<UserService>();
}
で
public class BaseController : Controller
{
[Inject]
protected LoggingInterface.ILogger<BaseController> Logger { set; get; }
[Inject]
protected IRepository Repository { set; get; }
protected override void OnAuthorization(AuthorizationContext filterContext)
{
....
base.OnAuthorization(filterContext);
}
}
とブートストラッププログラムあなたは公共セッターを持っていないプロパティに注入することはできません、 スティーブン
ありがとうダーリン、それは私がちょうどそれで遊んで結論したものでした。プロパティの魅力的な理由は、子孫がctor注入でうんざりしてしまうことです。世話をする。 –