私はRunメソッドを持つレポートインターフェイスを持っています。c#DAL - ビジネスオブジェクトのインターフェイス
このインターフェイスを実装し、それぞれ独自の種類のレポートを実行し、異なるテーブルからデータを取得するさまざまなタイプのレポートがあります。
それぞれのレポートでは、独自のデータコンテキストを使用して、Business Objectsにデータを取り込み、配列として返されるデータを取得します(少なくともリストのようなものを返すことはできますが、リストのタイプを定義すると少し難しくなります)。
返信は、返されたデータのプロパティを見つけるために使用されます。
これを十分に説明していただければ幸いです。
これを行うには良い方法がありますか?リクエストにより、
:
public interface IReport
{
int CustomerID { get; set; }
Array Run();
}
public class BasicReport : IReport
{
public int CustomerID { get; set; }
public virtual Array Run()
{
Array result = null;
using (BasicReportsDataContext brdc = new BasicReportsDataContext())
{
var queryResult = from j in brdc.Jobs
where j.CustomerID == CustomerID
select new JobRecord
{
JobNumber = j.JobNumber,
CustomerName = c.CustomerName
};
result = queryResult.ToArray();
}
}
}
他のクラスは、データに対するforeachをして、フィールド名と値を見つけるためにリフレクションを使用してXMLファイルにすることを置きます。
すべてのことを意味するように、私はC#の私の限られた理解が私にはまだ見えないように、もっと良い方法があると思っています。
それから、あなたの「レポーター」クラスを継承得意アクセサ
すべてのインターフェイスには本当にCustomerID getter/setterとArray Run()メソッドがあります。プラグインシステムの一部として新しいレポートを生成できるようにするというアイディアでした。 – m4rc
Matthewが何を意味したかは、ここにコードを投稿することでした。いくつかの実装とそれをどのように消費したいのかというあなたの 'インターフェース' – decyclone