Skip to content

Instantly share code, notes, and snippets.

@fschmied
Created March 10, 2014 20:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fschmied/9473772 to your computer and use it in GitHub Desktop.
Save fschmied/9473772 to your computer and use it in GitHub Desktop.
Triggers AutoMapper threading issue
using System;
using System.Linq;
using System.Threading.Tasks;
using AutoMapper;
namespace ConsoleApplication39
{
internal class Program
{
private static void Main (string[] args)
{
var tasks = Enumerable.Range(0, 5).Select(
i =>
Task.Factory.StartNew(
() =>
{
Mapper.DynamicMap<SomeDtoA, SomeDtoB>(new SomeDtoA());
Mapper.DynamicMap<SomeDtoB, SomeDtoA>(new SomeDtoB());
Mapper.DynamicMap<SomeDtoC, SomeDtoD>(new SomeDtoC());
Mapper.DynamicMap<SomeDtoD, SomeDtoC>(new SomeDtoD());
}))
.ToArray();
Task.WaitAll(tasks);
}
}
}
internal class SomeDtoA
{
private string Property1 { get; set; }
private string Property21 { get; set; }
private string Property3 { get; set; }
private string Property4 { get; set; }
private string Property5 { get; set; }
private string Property6 { get; set; }
private string Property7 { get; set; }
private string Property8 { get; set; }
private string Property9 { get; set; }
private string Property10 { get; set; }
private string Property11 { get; set; }
}
internal class SomeDtoB
{
private string Property1 { get; set; }
private string Property21 { get; set; }
private string Property3 { get; set; }
private string Property4 { get; set; }
private string Property5 { get; set; }
private string Property6 { get; set; }
private string Property7 { get; set; }
private string Property8 { get; set; }
private string Property9 { get; set; }
private string Property10 { get; set; }
private string Property11 { get; set; }
}
internal class SomeDtoC
{
private string Property1 { get; set; }
private string Property21 { get; set; }
private string Property3 { get; set; }
private string Property4 { get; set; }
private string Property5 { get; set; }
private string Property6 { get; set; }
private string Property7 { get; set; }
private string Property8 { get; set; }
private string Property9 { get; set; }
private string Property10 { get; set; }
private string Property11 { get; set; }
}
internal class SomeDtoD
{
private string Property1 { get; set; }
private string Property21 { get; set; }
private string Property3 { get; set; }
private string Property4 { get; set; }
private string Property5 { get; set; }
private string Property6 { get; set; }
private string Property7 { get; set; }
private string Property8 { get; set; }
private string Property9 { get; set; }
private string Property10 { get; set; }
private string Property11 { get; set; }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment