Unity 容器 - 从未同步的代码块调用对象同步方法

Unity Container - Object synchronization method was called from an unsynchronized block of code

我在我的项目中使用统一容器,我正在尝试像这样自行注册容器:

UnityContainer.RegisterInstance(UnityContainer);

但我收到以下异常:

Object synchronization method was called from an unsynchronized block of code.

我尝试搜索异常,但我发现的所有内容都与互斥体有关。

容器已自行注册(如 IUnityContainer),因此您不必注册它。考虑以下 class:

public class MyClass
{
    private readonly IUnityContainer m_UnityContainer;

    public MyClass(IUnityContainer unity_container)
    {
        m_UnityContainer = unity_container;
    }
}

现在,如果您简单地按如下方式解决这个 class,它就会将容器注入其中。

var obj = container.Resolve<MyClass>();

请注意,让您的 classes 依赖于容器意味着您希望使用容器来定位服务,这 is considered an anti-pattern.