我想将大多数接口映射到app.config文件中的具体类。但是,我想在运行时将一些接口注册到同一个Unity目录。我尝试了下面的代码,但它给了我一个 SynchronizationLockException: Object synchronization method was called from an unsynchronized block of code.
IUnityContainer container = new UnityContainer();
UnityConfigurationSection configSection =
(UnityConfigurationSection)ConfigurationManager.GetSection("unity");
configSection.Containers.Default.Configure(container);
container.RegisterInstance<IInterface>(new ConcreteObject());
如何在运行时在从app.config初始化的Unity目录中注册对象?
我正在使用Prism4附带的Unity版本(2.0)。
答案 0 :(得分:0)
这是一个常见问题,但在技术上并不是错误,而是注册了统一对象。将您的注意力更改为:
container.RegisterType<IInterface, ConcreteObject>(new ContainerControlledLifetimeManager());
那应该解决你的问题。
由于这个原因引发了异常:
Can Unity be made to not throw SynchronizationLockException all the time?