我在使用 Unity 容器解析对象时遇到异常:
消息"值不能为空。\ r \ n \ nParameter name:container" 来源" Microsoft.Practices.Unity"串
我有一个 Prism 应用程序,我有 ServiceModule 。 ServiceModule 只有接口及其实现:
public interface ICommonService
{
string SomeStorage { get; set; }
}
public class CommonService : ICommonService
{
string fooStorage=DateTime.Now.ToString();
public string FooStorage
{
get
{
return fooStorage;
}
set
{
fooStorage = value;
OnPropertyChanged("FooStorage");
}
}
}
我在 ModuleA 的 ViewModelA 中创建了一个ICommonService
实例。它运作正常:
unityContainer = new UnityContainer();
unityContainer.RegisterType<ICommonService, CommonService>(new ContainerControlledLifetimeManager());
IMyService someFoo = unityContainer.Resolve<ICommonService>();
someFoo.FooStorage = "AAAOOOBBB";
然后我想在 ModuleB 的 viewModelB 中读取此数据。这段代码抛出异常:
ICommonService someFoo = unityContainer.Resolve<ICommonService>();
string str=someFoo.FooStorage;
例外说:
消息&#34;值不能为空。\ r \ n \ nParameter name:container&#34; 来源&#34; Microsoft.Practices.Unity&#34;串
我做错了什么?任何帮助将不胜感激!
答案 0 :(得分:1)
根据您收到的错误消息,unityContainer
的值很可能是null
。确保正确初始化。