かなり簡単な変換クラスを作成しました。Foo
はBar
になります。インターフェイスを使用してコンバータクラスにメソッドを追加する
私は他のクラスの複数のコンバータをしたいので、私は2つの方法でインターフェイスを設定している:
public interface IConverter<in TSource, out TDestination>
{
TDestination Convert(TSource sourceObject);
IEnumerable<TDestination> ConvertMany(IEnumerable<TSource> sourceObjects);
}
そして、私のクラスはそうのようにこれを実装しています。すべてが素晴らしい作品
public class ObjectConverter : IConverter<Foo, Bar>
{
public Bar Convert(Foo sourceObject)
{
return new Bar
{
// Mapping attributes...
};
}
public IEnumerable<Bar> ConvertMany(IEnumerable<Foo> sourceObjects)
{
return sourceObjects.Select(obj => new Bar
{
// Mapping attributes...
});
}
}
。他のオブジェクトをソースとし、それをBar
として返すもう1つのConvertMany
メソッドを追加したかったのです。 Bar
を返すので、このクラスに追加しても問題ありませんか、またはこのインターフェイスも実装している2番目のクラスの方が適していますか?
私はC#とインターフェイスを使用するのがかなり新しくなっているので、何が良いのかよく分かりません。
(サイドノートでは、このメイク感覚のいずれかがより良い選択肢はありますでしょうか??)
もう一方のメソッドを追加したいのですか、または他のソースオブジェクトに実装されているメソッドを少なくとも両方とも追加したいだけですか? – DaKirsche
どちらも動作しますが、私は 'ConvertMany'だけ必要です。 – RandomStranger
のように使用してください。 'ObjectConverter:IConverter 、IConverter' –
DaKirsche