Created
January 15, 2016 14:32
-
-
Save lbargaoanu/454185b75ed017a8b81a to your computer and use it in GitHub Desktop.
InterfacesAndClases 2.0
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>().As<class1DTO>(); | |
Mapper.CreateMap<class2, iclass2DTO>().IncludeBase<class1, class1DTO>().As<class2DTO>(); | |
Mapper.CreateMap<class3, iclass3DTO>().IncludeBase<class2, class2DTO>().As<class3DTO>(); | |
Mapper.CreateMap<class4, iclass4DTO>().IncludeBase<class3, class3DTO>().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