Интерфейс привязки через ToMethod к методу c параметром

Я думаю, что я ищу что-то очень простое, но я не могу найти никаких примеров. Я хотел бы использовать Ninject для создания объекта, если Ninject вызывает заводской метод с указанным параметром и не вводится во время фактического запроса на создание экземпляра объекта:

запрос объекта здесь:

StandardKernel.Get<ISomeInteface>(new Ninject.Parameters.Parameter("dataContext", dataContext, true));

и я хотел бы сопоставить ISomeInterface методу, который ожидает, что значение будет передано ему во время выполнения.

сопоставление интерфейс здесь:

Kernel.Bind<ISomeInterface>().ToMethod(SomeObject.Create(--> `what do I put here?`));

это возможно? Если да, то как правильно отобразить мой интерфейс? Спасибо!

1 ответов


ToMethod(ctx => 
    SomeObject.Create(
        (IDataContext)ctx.Parameters.Single(p =>p.Name == "dataContext")
        .GetValue(ctx, null))

но вы должны переосмыслить ваш дизайн, чтобы избежать вызова Get из любого места, кроме вашего составного корня.