Skip to content

Instantly share code, notes, and snippets.

@lbargaoanu
Created January 15, 2016 14:32
Show Gist options
  • Save lbargaoanu/454185b75ed017a8b81a to your computer and use it in GitHub Desktop.
Save lbargaoanu/454185b75ed017a8b81a to your computer and use it in GitHub Desktop.
InterfacesAndClases 2.0
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