У меня есть PriorityQueue, которая принимает Func в качестве параметра построения.
public PriorityQueue(ISomeOtherInjectedThing other, Func<T, T, bool> cmp_func) {...}
Я связал это с помощью Ninject:
Bind(typeof (IPriorityQueue<,>)).To(typeof(PriorityQueue<,>));
У нас была странная ошибка в коде, и как часть этого мы заметили, что Ninject, кажется, генерирует объект Func и вставляет его в нашу приоритетную очередь, но у нас нет привязки для этого. Фабрика должна была выдать исключение активации, так как мы не передали требуемую функцию сравнения. Это не так, и если я отлаживаю, я нахожу это:
Ninject.dll!Ninject.KernelBase.Resolve.AnonymousMethod__c(Ninject.Planning.Bindings.IBinding binding) Line 386 + 0x5a bytes C#
Как я могу заставить Ninject генерировать исключение, как и ожидалось, вместо того, чтобы молча генерировать Func‹> для внедрения?