I believe if you change your List<ReportA> (inside of GetReports()) to type List<Report> it might work...
Brandon Ron Young wrote:
Is the following possible? The compiler tells me no: class Report { } class ReportA : Report { public string MyName = "ReportA"; } class ReportProvider { public List<Report> GetReports() { List<ReportA> reports = new List<ReportA>(); reports.Add(new Report()); return reports; } } I'd like to have that single method in ReportProvider, and hopefully a jumptable to return different types of reports: class ReportProvider { Dictionary<Type, Func<Criteria, List<Report>>> _mappings = new ... public ReportProvider() { _mappings.Add(typeof(BillableHoursReport, GetBillableHoursReport)); _mappings.Add(typeof(DetailByDateReport, GetDetailByDateReport)); } public IList<T> GetReport<T>(Criteria criteria) where T: Report { Type t = typeof(T); return _mappings[t].Invoke(criteria); } private IList<DetailByDateReport> GetDetailByDateReport(Criteria criteria) { List<DetailByDateReport> results = new ... // do stuff return results; } // other get report methods that return derived Report types } Thanks =================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com
=================================== This list is hosted by DevelopMentorĀ® http://www.develop.com View archives and manage your subscription(s) at http://discuss.develop.com