2017-12-19 14 views
0

私のオートマトン構成に丸めを追加する方法が必要です。 Automapper Set Decimals to all be 2 decimalsAutomapperすべての小数点型のインスタンスを丸める

しかし、AutoMapperはフォーマッタをサポートしなくなりました。私はそれを別のタイプに変換する必要はないので、タイプコンバータも最善の解決策であるとは思えません。

今でもこの問題のオートマッパソリューションはありますか? AutoMapperバージョン6.11

+0

https://stackoverflow.com/questions/30137734/whats-the-alternative-to-valueformatter-in-automapper – Amy

+0

解決策の問題は、すべての小数点型のインスタンスを見つけなければならないということです。私はプロパティではなく小数点以下の型でこれをやりたい –

+0

十進数から十進数までのマップを作成し、そのフォーマッタを適用するだけです。あなたはどこでもそれをする必要はありません。小数点以下を小数点にマッピングする方法をautomapperに教えてください。 – Amy

答えて

2

を使用して

これは、あなたがdecimaldecimalのマッピングを設定することができます方法を示す完全なMCVEです。この例では、私が2桁にすべての小数点以下の値を丸める:

public class FooProfile : Profile 
{ 
    public FooProfile() 
    { 
     CreateMap<decimal, decimal>().ConvertUsing(x=> Math.Round(x,2)); 
     CreateMap<Foo, Foo>(); 
    } 
} 

public class Foo 
{ 
    public decimal X { get; set; } 
} 

をここでは、我々はそれを示しています

class Program 
{ 
    static void Main(string[] args) 
    { 
     Mapper.Initialize(x=> x.AddProfile(new FooProfile())); 

     var foo = new Foo() { X = 1234.4567M }; 
     var foo2 = Mapper.Map<Foo>(foo); 
     Debug.WriteLine(foo2.X); 
    } 
} 

予想される出力:

1234.46

しばらくそのAutomapperがdecimalをにマップする方法を知っているをそのまま使用すると、デフォルト設定を無効にして、ニーズに合わせてマッピングする方法を伝えることができます。

関連する問題