我正在尝试进行上下文绑定,但无法将具体实现接口绑定为构造函数参数。忍者版本:3.2.0.0
我的结构如下:
INotifier 1. XNotifier 2. YNotifier
IPublisher 1. APublisher 2. BPublisher
其中 XNotifier 和 YNotifier 采用 IPublisher 类型的构造函数参数。
这是我的绑定:
Bind<INotifier>()
.To<XNotifier>()
.When(x => notifictionControl.ToLower() == "xnotification" )
.WithConstructorArgument("Publisher",ctx=>Kernel.Get<IPublisher>());
Bind<INotifier>()
.To<YNotifier>()
.When(x => notifictionControl.ToLower() == "ynotification" )
.WithConstructorArgument("Publisher", ctx => Kernel.Get<IPublisher>());
用法:
IParameter parameter = new ConstructorArgument("Publisher", publisher);
var notifier = kernel.Get<INotifier>(parameter);
但出现以下错误:
激活 INotifier 时出错 没有匹配的绑定可用,并且类型不是自绑定的。