2016-11-28 8 views
0

私は遭遇したことのない奇妙な問題があります。プライベート/内部マッピングではありません

親クラス:

public class ParentClass 
{ 
    private int? _clientType; 

    internal int? Client_Type_ 
    { 
     get { return _clientType; } 
     set { _clientType = value; } 
    } 

    public string Company_Name{ get; set; } 

    public string Client_Type 
    { 
     get { return MyDictionary[_clientType.GetValueOrDefault(0)]; 
    } 
} 

子供クラス:

public class ChildClass : ParentClass 
{ 
    public string Full_Name { get; set; } 
} 

私のような私のユニティのIoCコンテナにマッピングを定義しています:

は、私は2つのクラスを持っている

var config = new MapperConfiguration(cfg => 
{ 
    cfg.CreateMap<ParentClass, ChildClass>(); 
} 

IMapper mapper = config.CreateMapper(); 

container.RegisterInstance(mapper); 

そして私のコードで私は、次のようなマッピングしています:

var parentClass = GetParentClass(); 
var mappedClass = _mapper.Map<ChildClass>(parentClass); 

奇妙なことがある...私はparentClassの値をチェックして、私が最初に私のモデル(parentClass)に渡された値のすべてのことができますがあります。しかし、新しいオブジェクト(childClass)にマップすると、Company Nameは固執しますが、_clientTypeとClient_Type_はnullです(最終的にClient_Typeに影響します)。

私が間違っていることに関する提案はありますか?

答えて

1

AutoMapperを使用している場合は、イニシャライザのShouldMapPropertyを適切な値に設定する必要があります。

これは次のように行われている:それだった

Mapper.Initialize(cfg => 
{ 
    cfg.ShouldMapProperty = p => p.GetMethod.IsPublic || p.GetMethod.IsAssembly; 
    cfg.CreateMap<Source, Destination>(); 
}); 
+0

は - そんなにありがとう! – MadScout

関連する問題