登録していないコンポーネントが自動でインスタンス化されるのを防ぐには

上で示した挙動がいやな場合もあるかもしれません。
そのときは、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から取得しようとした時点で例外が発生します。