我刚开始使用mvvm light toolkit中的SimpleIOC。我想知道是否有将带参数构造函数设置为PreferredConstructor的选项?
SimpleIOC是否支持此功能?如果支持,当尝试从容器中解析对象时,如何传递参数?
对于不带参数的构造函数,我可以轻松地实现这一点,例如:
SimpleIoc.Default.Register<MyClass>();
SimpleIoc.Default.GetInstance<MyClass>().MyMethod();
但问题是如何为带参数的构造函数实现这一点?
this.unityContainer.Resolve<MyClass>(new ParameterOverride(“myParameter”,passedParameter));
尽管如果该类型之前注册为Singleton,则不会导致新实例。 MyClass需要成为单例的特定原因吗?当然,您还可以在IMyClassFactory中实现自己的缓存机制,并通过参数缓存实例。好处是,这不是ViewModel的问题,并且在MyClassFactory实现中透明地抽象化了它。 - Tseng