将参数传递给方法给出"无法访问命名空间上的方法"

时间:2014-07-06 06:10:31

标签: c#

我正在尝试使用此方法,但我对将参数传递给它的内容/方式感到困惑。

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);
    }
}

我试图传递我需要导出的报告的名称,这是以这种方式在库中:

第二次修改

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

但是我一直收到错误"无法在命名空间上访问方法"在var报告上。 我这样解决了吗?

1 个答案:

答案 0 :(得分:1)

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

namespace.BOMreports.Report321();

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

  

<强>加成

如果Report321BOMreports中的一个类,那么你做错了。您需要做的是将其实例化如下:

var report = new BOMreports.Report321();