Ninject WithConstructorArgument: нет соответствующих привязок, и тип не является самосвязываемым

Мое понимание WithConstructorArgument, вероятно, ошибочно, потому что следующее не работает:

У меня есть сервис, давайте назовем его MyService, конструктор которого принимает несколько объектов, и строковый параметр testEmail. Для этого строкового параметра я добавил следующую привязку Ninject:

string testEmail = "[email protected]";
kernel.Bind().To().WithConstructorArgument("testEmail", testEmail);

Однако при выполнении следующей строки кода я получаю исключение:

var myService = kernel.Get();

Вот исключение, которое я получаю:

Ошибка активации строки. Соответствующие привязки отсутствуют, а тип не является самосвязываемым. Путь активации:

2) Внедрение строки зависимости в параметр testEmail конструктора типа MyService

1) Запрос на MyService

Предложения:

1) Убедитесь, что вы определили привязку для строки.

2) Если привязка была определена в модуле, убедитесь, что модуль был загружен в ядро.

3) Убедитесь, что вы случайно не создали более одного ядра.

4) Если вы используете аргументы конструктора, убедитесь, что имя параметра соответствует имени параметра конструкторов.

5) Если вы используете автоматическую загрузку модуля, убедитесь в правильности пути поиска и фильтров.

Что я здесь не так делаю?

ОБНОВИТЬ:

Вот конструктор MyService:

[Ninject.Inject]
public MyService(IMyRepository myRepository, IMyEventService myEventService, 
                 IUnitOfWork unitOfWork, ILoggingService log,
         IEmailService emailService, IConfigurationManager config,
         HttpContextBase httpContext, string testEmail)
{
    this.myRepository = myRepository;
    this.myEventService = myEventService;
    this.unitOfWork = unitOfWork;
    this.log = log;
    this.emailService = emailService;
    this.config = config;
    this.httpContext = httpContext;
    this.testEmail = testEmail;
}

У меня есть стандартные привязки для всех типов параметров конструктора. Только 'строка» не имеет привязки, а HttpContextBase имеет привязку, которая немного отличается:

kernel.Bind().ToMethod(context => new HttpContextWrapper(new HttpContext(new MyHttpRequest("", "", "", null, new StringWriter()))));

и MyHttpRequest определяется следующим образом:

public class MyHttpRequest : SimpleWorkerRequest
{
    public string UserHostAddress;
    public string RawUrl;

    public MyHttpRequest(string appVirtualDir, string appPhysicalDir, string page, string query, TextWriter output)
    : base(appVirtualDir, appPhysicalDir, page, query, output)
    {
        this.UserHostAddress = "127.0.0.1";
        this.RawUrl = null;
    }
}

Ответы на вопрос(2)

Ваш ответ на вопрос