Telerik报告带有依赖注入的ObjectDataSource

Ras*_*Net 5 c# asp.net asp.net-mvc telerik telerik-reporting

我正在开发一个asp.net mvc 5 Web应用程序.只有telerik报告[no trdx]才有类库.我正在使用TypeReportSource来解析报告文件的报告和NeedDataSource事件以从数据库中获取数据.在整个项目中,我使用的是构造函数注入(structuremap)技术,但这里构造函数注入不起作用,因为telerik报告只支持无参数构造函数.

如何将数据传递给报告的DataSource?我不想为类库添加单独的IoC容器,因为它由具有单独配置的多个项目共享.

Eth*_* Wu 1

在“Telerik报表库”模式下,每个报表默认由3个文件组成。假设我在报告项目中创建了一个名为“ProductReport”的报告。它将生成 ProductReport.cs、ProductReport.Designer.cs、ProductReport.resx

以下是“ProductReport.cs”代码:

public partial class ProductReport : Telerik.Reporting.Report
{
    public ProductReport()
    {
        //
        // Required for telerik Reporting designer support
        //
        InitializeComponent();

        //
        // TODO: Add any constructor code after InitializeComponent call
        //
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为其中一个选项是添加另一个带有要注入到 Report 实例中的参数的构造函数,包括数据源,并记住调用“InitializeComponent()”。

该解决方案的另一个好处是,它不会影响报表设计器的使用,以及设计器本身对报表项的修改。