我正在尝试让 Singleton 实例与 Autofac 一起使用。我有点用 Winforms 做一个 quasi-mvvm 类型的事情,只是一个实验,所以不要挂断电话。但我试图让我的模型成为一个在命令中引用的单个实例(这里的 ICommand 不是 WPF 变体):
我有以下容器设置:
var cb = new ContainerBuilder();
cb.RegisterType<CalculateCommissionCommand>().As<ICommand<TradeEntry>>().SingleInstance();
cb.RegisterType<CalculationsModel>().As<ICalculationsModel>().SingleInstance();
cb.Register(c => new CalculationsView() { Model = c.Resolve<ICalculationsModel>() }).SingleInstance();
cb.Build();
现在,Command 将 ICalculationsModel 作为构造函数参数。但是,当我在传递给命令的模型中设置一个值时,该值不会出现在已经使用 CalculationsView 设置的模型中。尽管调用了“singleInstance”方法,但似乎命令和视图正在传递 CalculationsModel 的不同实例。我错过了什么吗?为什么会这样?