Я не уверен, чего вы пытаетесь достичь с помощью приведенного вами кода. Ошибка возникает потому, что вы связываете один и тот же сервис более одного раза, поэтому, когда вы пытаетесь разрешить его, он не может выбрать одно (идентичное) связывание поверх другого. Это не то, как DI Контейнер должен работать. В вашем примере вы вообще не получаете преимущества от своего DI. Вы можете заменить свой код:
KernelFactory.Kernel.Bind<IValidationPurchaseService>().To<ValidationPurchaseService>()
.WithConstructorArgument("validationPurchaseDTO", validationPurchaseDTO)
.WithConstructorArgument("confirmPayment", true);
this.ValidationPurchaseService = KernelFactory.Kernel.Get<IValidationPurchaseService>();
С этим:
this.ValidationPurchaseService = new ValidationPurchaseService(validationPurchaseDTO:validationPurchaseDTO, confirmPayment:true)
Если бы вы могли объяснить, чего вы пытаетесь достичь, используя ninject в этом сценарии, сообщество сможет оказать дальнейшую помощь.