Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用xunit2时出现自动映射异常_C#_.net_Automapper_Xunit2 - Fatal编程技术网

C# 使用xunit2时出现自动映射异常

C# 使用xunit2时出现自动映射异常,c#,.net,automapper,xunit2,C#,.net,Automapper,Xunit2,我完全不知道为什么会出现映射异常。我已经创建了一个singleton来加载我的所有配置文件。我通过从程序集获取类型,然后使用Activator.CreateInstance实例化配置文件来加载配置文件。有时一些测试用例通过,有时同样的测试用例失败。从我所能推断的情况来看,这是一种种族状况,它导致了这个根本不应该发生的问题,我是否错过了其他的东西?我也遇到了类型初始化异常 public static class AutoMapperRestConfiguration { priva

我完全不知道为什么会出现映射异常。我已经创建了一个singleton来加载我的所有配置文件。我通过从程序集获取类型,然后使用Activator.CreateInstance实例化配置文件来加载配置文件。有时一些测试用例通过,有时同样的测试用例失败。从我所能推断的情况来看,这是一种种族状况,它导致了这个根本不应该发生的问题,我是否错过了其他的东西?我也遇到了类型初始化异常

    public static class AutoMapperRestConfiguration
{
    private static readonly object Sync = new object();
    private static bool isInitialized = false;

    public static void Configure()
    {
        lock (Sync)
        {
            if (!isInitialized)
            {
                Trace.Listeners.Add(new ConsoleTraceListener());
                Trace.WriteLine("Automapper initialized");
                Mapper.Initialize(cfg =>
                {
                    Mapper.Initialize(x => GetConfiguration(Mapper.Configuration));
                });

                Mapper.AssertConfigurationIsValid();

                isInitialized = true;
            }
        }
    }

    private static void GetConfiguration(IConfiguration configuration)
    {
        var assemblies = new List<Assembly>();
        assemblies.Add(typeof(SomeProfile).Assembly);
    //    assemblies.Add(typeof(SomeProfile2).Assembly);
        assemblies.Add(typeof(SomeProfile3).Assembly);
        foreach (var assembly in assemblies)
        {
            var profiles = assembly.GetTypes().Where(x => typeof(Profile).IsAssignableFrom(x));
            foreach (var profile in profiles)
            {
                configuration.AddProfile((Profile)Activator.CreateInstance(profile));
            }
        }
    }
}
公共静态类AutoMapperRestConfiguration
{
私有静态只读对象同步=新对象();
私有静态布尔值初始化=false;
公共静态void Configure()
{
锁定(同步)
{
如果(!i初始化)
{
添加(新的ConsoleTraceListener());
Trace.WriteLine(“自动映射初始化”);
Mapper.Initialize(cfg=>
{
初始化(x=>GetConfiguration(Mapper.Configuration));
});
assertConfigurationsValid();
isInitialized=true;
}
}
}
专用静态配置(IConfiguration配置)
{
var assemblies=新列表();
添加(typeof(SomeProfile).Assembly);
//Add(typeof(SomeProfile2.Assembly);
添加(typeof(SomeProfile3.Assembly);
foreach(程序集中的变量程序集)
{
var profiles=assembly.GetTypes()。其中(x=>typeof(Profile).IsAssignableFrom(x));
foreach(配置文件中的var配置文件)
{
configuration.AddProfile((Profile)Activator.CreateInstance(Profile));
}
}
}
}

我必须说,我以前从未见过:)您可能想阅读。您以前读过,但仍然找不到问题您使用的是哪个版本的Automapper?我必须说,我以前从未见过:)您可能想阅读。您以前读过,但是仍然找不到问题你使用哪个版本的Automapper?我使用的是3.2.1