2016-11-30 2 views
1

Что наилучший подход для использования AutoMapper с объектами стоимостью со статическими методами фабричных:AutoMapper со статическими методами фабричных

public class ImmutableDetail 
{ 
    public static ImmutableDetail Create(string detail) => new ImmutableDetail(detail); 

     private ImmutableDetail(string detail) 
     { 
     Detail = detail; 
     } 

     public string Detail { get;} 

    } 

Где я хочу быть в состоянии:

var immutableDetails = Mapper.Map<ImmutableDetail>(source); 

ответ

2

С ниже классов:

public class DummySource 
{ 
    public string Detail { get; set; } 
} 

public class ImmutableDetail 
{ 
    public static ImmutableDetail Create(string detail) { return new ImmutableDetail(detail); } 

    private ImmutableDetail(string detail) 
    { 
     Detail = detail; 
    } 

    public string Detail { get; private set; } 
} 

вы можете сделать отображение, как это:

Mapper.CreateMap<DummySource, ImmutableDetail>().ConstructUsing((DummySource ds) => ImmutableDetail.Create(ds.Detail)); 
var source = new DummySource { Detail = "Hello" }; 
var immutableDetails = Mapper.Map<ImmutableDetail>(source); 
Смежные вопросы