0
私は私のviewmodelクラスと私のwcfサービスクラス(別のプロジェクト)を持っています。私はviewmodelクラスをwcfクラスに変換する必要があり、逆もまた同様です。現在、私は以下の方法を使用しています:AutoMapperを使用した双方向変換
public static class ExtensionMethods
{
public static object To<T>(this object source)
{
// create the map
Mapper.CreateMap(source.GetType(), typeof (T));
// if the source is a list
if(source is IEnumerable)
{
return Mapper.Map(source, source.GetType(), typeof (List<T>));
}
// return the mapping
return (T) Mapper.Map(source, source.GetType(), typeof (T));
}
}
// converting the wcf class to viewmodel
var orders = (List<OrderStatusViewModel>) _orderStatusServiceClient.GetRecentOrders().To<OrderStatusViewModel>();
// converting the viewmodel to the wcf class
var order = (Order) orderStatusViewModel.To<Order>();
これはこれを行う最良の方法ですか?ビューモード=> wcfクラスとwcfクラス=> viewmodelの両方の方向でこれを実行する必要があることに注意してください。
と不要だろうならば、あなたの質問「これを行うための最善の方法は、」効果的に答えることは難しいことができます。一見すると、私は問題を見ません。 ** **このコードは問題を引き起こしていますか?あなたの質問の理由は何ですか? –
問題は発生していません!私はもっと良い方法があるのだろうかと思っていた。異なるプロパティ名のために2つのクラス間のマッピングが一致しない場合、問題が発生する可能性があります。 – johndoe
Mapper.DynamicMap(source)も同じことをする必要があります。 GetRecentOrders()。(Mapper.DynamicMap )を選択し、To拡張メソッドを完全に削除します。 –
jwize