2016-07-05 18 views
4

オートマトンのバージョンを4.2.1から5.0.0にアップデートした後、SourceValueが存在しないというコンパイルエラーが発生しました。ここ は、その財産の交換でなければなりませんAutomapper 5.0.0 SourceValueがありません(カスタムコンバーター)

public class DraftLayoutCellPropertiesConverter : ITypeConverter<DraftLayoutCell, DraftGamePeriodDraftLayoutViewModel> 
    { 
     public DraftGamePeriodDraftLayoutViewModel Convert(ResolutionContext context) 
     { 
      var input = context.SourceValue as DraftLayoutCell; 
      var result = new DraftGamePeriodDraftLayoutViewModel(); 

      if (input != null) 
      { 

何私の例でありますか?それはカスタムコンバータを実行する最善の方法ですか?私は、多くの人々がアプリを使用しているので、アップデートが既存のコードを壊さないことを期待していました。

答えて

-1

私が見ることができるように、ITypeConverterは、次の宣言があります。

public interface ITypeConverter<in TSource, out TDestination> 
{ 
    TDestination Convert(TSource source, ResolutionContext context); 
} 

をそして、あなたは間違ってこのインタフェースを実装しているように見えます。

正しく実装したら、TSource sourceパラメータを使用してSourceValueにアクセスできます。

あなたの質問については「カスタムコンバーター: if you need to use the custom converterを実行する最善の方法ですか?」というメッセージが表示されている場合は、上記のインターフェイスを実装する必要があります。しかし、それはあなたのケースに依存し、時にはコンバーターのような種類のカスタム値プロバイダーを使用する必要があるかもしれません。 Automapper 5、インタフェースITypeConverterが変更に

2

、あなたの実装を更新する必要があります。

public class DraftLayoutCellPropertiesConverter : ITypeConverter<DraftLayoutCell, DraftGamePeriodDraftLayoutViewModel> 
{ 
    public DraftGamePeriodDraftLayoutViewModel Convert(DraftLayoutCell source, DraftGamePeriodDraftLayoutViewModel destination, ResolutionContext context) 
    { 
     var input = source; 
     ... 
    } 
} 
関連する問題