UWP,Caliburn.Micro:如何传递方法单例的构造函数参数?

时间:2017-08-21 03:02:33

标签: uwp singleton caliburn.micro

这是我的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)

1 个答案:

答案 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