グリッドに関連するすべてのタスクに対して 1 つのインターフェイスが必要です。タスクはこのインターフェイスを実装します。
public interface IDataForGrid<T>
{
IGridResponse<T> GetList(IGridRequest request);
}
T 型は常に DTO クラスです。この DTO には共通のインターフェイスがないため、共通のインターフェイスを作成できません。特定のプロパティを持つ単なる DTO です。
私はこのようにそれを使用したいと思います:
public class Service1
{
public IGridResponse CreateResponse(IGridRequest request)
{
...
IDataForGrid<T> aa;
if(request == 1) aa = new CustomerGridData;
if(request == 2) aa = new OrderGridData;
var coll = aa.GetList();
}
}
public class CustomerGridData : IDataForGrid<CustomerDTO>
{
...
}
問題は、T の代わりに何を入れたらよいかわからないことです。