将参数传递给方法将导致“无法访问名称空间上的方法”

本文关键字:方法 空间 访问 参数传递 | 更新日期: 2023-09-27 18:11:49

我试图使用这种方法,但我对什么/如何传递参数感到困惑。

void SaveReport(Telerik.Reporting.Report report, string fileName)
{
    ReportProcessor reportProcessor = new ReportProcessor();
    Telerik.Reporting.InstanceReportSource instanceReportSource = 
        new Telerik.Reporting.InstanceReportSource();
    instanceReportSource.ReportDocument = report;
    RenderingResult result = 
        reportProcessor.RenderReport("PDF", instanceReportSource, null);
    using (FileStream fs = new FileStream(fileName, FileMode.Create))
    {
        fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
    }
}

我已经尝试传递我需要导出的报告的名称,它以这种方式在库中:

2日修改

protected void Button1_Click(object sender, EventArgs e)
{
    string fileName = "SS";
    var report = BOMreports.Report321();
    SaveReport(report, fileName );
}

但是我一直在var报告上得到错误"无法访问命名空间上的方法"。我能解出来吗?

将参数传递给方法将导致“无法访问名称空间上的方法”

似乎您在BOMreports类和具有相同名称的名称空间中存在冲突。由于您的名称空间与代码位于同一个程序集中,而类位于另一个程序集中,因此当您在代码中使用名称时,编译器会引用它。尝试使用完整标识符访问类:

namespace.BOMreports.Report321();

另一件事,确保Report321是一个静态方法,返回Telerik.Reporting.Report的对象。

添加

如果Report321BOMreports中的一个类,那么您做错了。您需要做的是像下面这样实例化它:

var report = new BOMreports.Report321();