У меня есть интерфейс отчетов с методом Run.
Существуют различные типы отчетов, которые реализуют этот интерфейс, и каждый из них запускает свой собственный тип отчетов, получая данные из разных таблиц.
Каждый отчет, используя свой собственный контекст данных, получает данные, которые затем заполняют бизнес-объекты, и в настоящий момент они возвращаются в виде массива (я хотел бы иметь возможность по крайней мере вернуть что-то вроде списка, но потому что вам нужно определитьтип списка делает его немного сложнее).
Затем используется отражение для выяснения свойств возвращаемых данных.
Надеюсь, я объяснил это достаточно хорошо!
Есть ли лучший способ сделать это?
По запросу:
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-файл.
В его нынешнем виде все работает - я просто не могу не думать, что есть лучший способ сделать это - этот perhaps мое ограниченное понимание C # пока не позволяет мне видеть.