我有这个代码。
foreach(device into xmlfile)
{
var kdevice = kernel.Get(type, parameters.ToArray()) as IDevice;
devices.Add(kdevice);
kernel.Bind(type).ToConstant(kdevice).InSingletonScope().Named(kdevice.Name);
if (type.IsSubclassOf(typeof(BaseDevice)))
kernel.Bind<BaseDevice>().ToConstant(kdevice as BaseDevice).InSingletonScope().Named(kdevice.Name);
}
我的问题是,在下一次迭代中,Kernel.Get 通过第一次绑定解决,即使我不要求命名绑定,所以它应该创建一个新对象。
我不能使用后期最终绑定,因为其他设备可能有一个“refDevice”字符串参数,应该使用命名绑定设备来解析。
我应该怎么办?