私は次のようなクラスを持っています:
public class RecipientEmailDetails
{
public string Name { get; set; }
public string Email { get; set; }
public List<VacancyEmailDetails> Vacancies { get; set; }
}
このクラスは、Vacanciesが次のように一般的なデータを取り込むことができるように変更する必要があります。
public class RecipientEmailDetails<T>
{
public string Name { get; set; }
public string Email { get; set; }
public List<T> Vacancies { get; set; }
}
残念ながら、現時点でこれを行う場合は、このクラス(多くの場所)をインスタンス化するすべてのコードを変更して、この新しいジェネリック型を含める必要があります。たとえば、次のように変更します。
List<RecipientEmailDetails> recipientEmailDetails = wrapper.GetRecipientEmails(emailCount);
これに:
List<RecipientEmailDetails<VacancyEmailDetails> recipientEmailDetails = wrapper.GetRecipientEmails(emailCount);
最終的に、これは多くの変更であり、これらの現在の場所の多くは、必要要員に保存されているデータのタイプについての知識がありません(理想的には知識がないはずです)。最終的に空席リストがチェックされて処理されるまで、彼らはこの情報を転送するだけです。
とにかく、RecipientEmailDetailsオブジェクトの初期化方法をどこでも変更することなく、Vacanciesに汎用データを格納するための賢い方法を探しています。箱に入れて箱から出す必要はありません。
VacancyEmailDetailsは現在次のようになっていることを追加する必要があります。
public class VacancyEmailDetails
{
public string Id { get; set; }
public string Name { get; set; }
public string Location { get; set; }
public string Salary { get; set; }
public string Notes { get; set; }
}
すべての場合において、空室はこれに類似したオブジェクト、つまり主にほとんどまたは少数のメソッドを持つデータメンバーを保持するために必要になります。ただし、これらのメンバーの数、名前、およびタイプは大幅に異なります。