这是我的Caliburn.Micro代码。
在第一步“Configure()/ App.xaml.cs”中,我想将参数传递给Constructor。
_container.Singleton<MySingletonClass>("KeyName");
MySigletonClass有一个带Parameter的构造函数。 (仅限1个字符串)
public MySigletonClass (string msg){ ...
如何使用参数注册Singletone?
更新问题
With Caliburn.Micro manual,有4种注册方法。有什么类型我们可以传递参数吗?我应该使用“RegisterInstance”吗?
在手册中,我真的无法理解“实施”。这是什么?void RegisterInstance(Type service, string key, object implementation)
void RegisterPerRequest(Type service, string key, Type implementation)
void RegisterSingleton(Type service, string key, Type implementation)
void RegisterHandler(Type service, string key Func<SimpleContainer, object> handler)
答案 0 :(得分:3)
Caliburn.Micro var dict = JObject.Parse(File.ReadAllText("data.json"))["fields"]
.Cast<JProperty>()
.ToDictionary(x => x.Name, x => (string)x.Value["value"]);
实现不支持构造函数注入以及在解析期间可以提供的其他参数。还有其他依赖注入容器支持该方案,但您可以通过使用工厂模式轻松解决此限制。
以下示例演示了SimpleContainer
如何将客户名称作为构造函数参数,但也依赖于CustomerViewModel
实例:
CustomerDatabase