登録していないコンポーネントが自動でインスタンス化されるのを防ぐには
上で示した挙動がいやな場合もあるかもしれません。
そのときは、IKernelの実装クラスを作成してそれを使います。具体的にはIKernelのHandleMissingBindingメソッドをオーバーライドしてfalseを返します。
public class MissingBindingDisabledKernel : StandardKernel { public MissingBindingDisabledKernel(INinjectSettings settings, params INinjectModule[] modules) : base(settings, modules) { } protected override bool HandleMissingBinding(Type service) { return false; } }
こうすると、登録していないコンポーネントをKernelから取得しようとした時点で例外が発生します。