Created
January 15, 2016 13:50
-
-
Save lbargaoanu/19e8ec659cb1d7e71df4 to your computer and use it in GitHub Desktop.
Mapping classes and interfaces
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void Main() | |
{ | |
Mapper.CreateMap<class1, iclass1DTO>().Include<class2, iclass2DTO>().Include<class3, iclass3DTO>().Include<class4, iclass4DTO>() | |
.ConstructUsing((ResolutionContext _)=>new class1DTO()).As<class1DTO>(); | |
Mapper.CreateMap<class2, iclass2DTO>().As<class2DTO>(); | |
Mapper.CreateMap<class3, iclass3DTO>().As<class3DTO>(); | |
Mapper.CreateMap<class4, iclass4DTO>().As<class4DTO>(); | |
try | |
{ | |
Mapper.Configuration.Seal(); | |
//Mapper.AssertConfigurationIsValid(); | |
var bo = new class4 { prop1 = "PROP1", prop2 = "PROP2", prop3 = "PROP3", prop4 = "PROP4", parent = new class1 { prop1 = "parent_prop1"} }; | |
Mapper.Map<class4, class4DTO>(bo, new class4DTO()).Dump(); | |
//Mapper.Map<iclass4DTO>(bo).Dump(); | |
//typeof(class4).GetInterfaces().Where(i=>typeof(class4).GetInterfaceMap(i).TargetMethods.Any(m=>m.DeclaringType==typeof(class4))).Dump(); | |
} | |
catch(Exception ex) | |
{ | |
ex.ToString().Dump(); | |
} | |
} | |
public class class1 : iclass1 | |
{ | |
public string prop1 { get;set;} | |
} | |
public class class2 : class1, iclass2 | |
{ | |
public string prop2 { get; set; } | |
public iclass1 parent { get; set; } | |
} | |
public class class3 : class2, iclass3 | |
{ | |
public string prop3 { get; set; } | |
} | |
public class class4 : class3, iclass4 | |
{ | |
public string prop4 { get; set; } | |
} | |
public class class1DTO : iclass1DTO | |
{ | |
public string prop1 { get; set; } | |
} | |
public class class2DTO : class1DTO, iclass2DTO | |
{ | |
public string prop2 { get; set; } | |
public iclass1DTO parent { get; set; } | |
} | |
public class class3DTO : class2DTO, iclass3DTO | |
{ | |
public string prop3 { get; set; } | |
} | |
public class class4DTO : class3DTO, iclass4DTO | |
{ | |
public string prop4 { get; set; } | |
} | |
public interface iclass1 | |
{ | |
string prop1 { get; set; } | |
} | |
public interface iclass2 : iclass1 | |
{ | |
iclass1 parent { get; set; } | |
string prop2 { get; set; } | |
} | |
public interface iclass3 : iclass2 | |
{ | |
string prop3 { get; set; } | |
} | |
public interface iclass4 : iclass3 | |
{ | |
string prop4 { get; set; } | |
} | |
public interface iclass1DTO | |
{ | |
string prop1 { get; set; } | |
} | |
public interface iclass2DTO : iclass1DTO | |
{ | |
string prop2 { get; set; } | |
iclass1DTO parent { get; set; } | |
} | |
public interface iclass3DTO : iclass2DTO | |
{ | |
string prop3 { get; set; } | |
} | |
public interface iclass4DTO : iclass3DTO | |
{ | |
string prop4 { get; set; } | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment