我正在开发一个asp.net mvc 5 Web应用程序。有一个仅用于telerik报表的类库[no trdx]。我正在使用TypeReportSource解决报告和报告文件的NeedDataSource事件,以从数据库中获取数据。在整个项目中,我正在使用构造函数注入(inject)(structuremap)技术,但是这里的构造函数注入(inject)不起作用,因为telerik报表仅支持无参数构造函数。
如何将数据传递到报表的数据源?我不想为类库添加单独的IoC容器,因为它由具有单独配置的多个项目共享。
最佳答案
在“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
//
}
}
我认为选项之一是添加另一个具有要注入(inject)到Report实例中的参数的构造函数,包括数据源,并记住调用“InitializeComponent()”。
该解决方案的另一个好处是,它不会影响报表设计器的使用,也不会影响设计器本身对报表项的修改。
关于c# - 带有依赖项注入(inject)的Telerik Reporting ObjectDataSource,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29302257/