Visitorを使用する可能性を検討しましたか?
ビジター パターンを の使用と組み合わせると、orステートメントを使用せずに、またはデリゲートを使用して手動でタイプ ディクショナリを作成する必要がdynamic
なく、非常に単純な実装を得ることができます。if
switch
you を使用すると、デザイン パターンの「 acceptdynamic
」部分の実装を回避できます。これは、制御できない外部型であるため、便利だと思います。
つまり、次のようなものを作成します。
public interface IVisitor
{
void Visit(OneType element);
void Visit(AnotherType element);
....
}
そのビジターを実装し、後で以下を使用して実装を呼び出すことができます。
visitor.Visit((dynamic)objectToTransform);
に適切なオーバーロードがないことに関する例外を処理する必要があるでしょうType
。
これにより、タイプごとに個別のメソッドを実行することに関連する問題の一部が解決されます。それぞれで具体的に何をする必要があるかにもよりますが、自動プロパティ マッピングが必要な場合は、AutoMapperが非常に便利です。