私はこのコードを持っています。
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" 文字列パラメーターがある可能性があるため、レイト ファイナル バインディングを使用できません。
私は何をすべきか?