Интерфейс привязки через 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
из любого места, кроме вашего составного корня.