C# 将参数传递给方法给出;无法访问命名空间上的方法";
我正在尝试使用此方法,但我不知道如何将参数传递给它C# 将参数传递给方法给出;无法访问命名空间上的方法";,c#,C#,我正在尝试使用此方法,但我不知道如何将参数传递给它 void SaveReport(Telerik.Reporting.Report report, string fileName) { ReportProcessor reportProcessor = new ReportProcessor(); Telerik.Reporting.InstanceReportSource instanceReportSource = new Telerik.Reportin
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报告中遇到错误“无法访问命名空间上的方法”。
我能解决这个问题吗?似乎在
BOMreports
类中存在冲突,并且名称空间具有相同的名称。由于名称空间与代码位于同一程序集中,且类位于另一个程序集中,因此当您在代码中使用名称时,编译器将引用该名称。尝试使用其完全标识符访问该类,如下所示:
namespace.BOMreports.Report321();
另外,确保Report321
是一个静态方法,返回Telerik.Reporting.Report
的对象
添加
如果Report321
是BOMreports
中的一个类,则说明您做错了。您需要做的是将其实例化为以下内容:
var report = new BOMreports.Report321();
什么是BOMReports?类还是命名空间?它是一个包含多个报表的类。为什么
SaveReport
的参数顺序错误?在方法签名中,它是report,fileName
,但是当调用它时,您传递的是fileName,report
。您确定从那一行得到了错误吗?尝试var report=BOMReports.Report321();保存报告(文件名,报告)代码>在两行上。查看哪一行出现错误。ShowBOMreports
code。我调查了您的提示,但除非我在您的回答中遗漏了什么,否则此类DLL中没有冲突。名称空间是BOMreports,该名称空间中的文件名是一个类“Report321”,在其他几个上下文中运行良好。@Nullbyte所以Report321不是一个方法?不,BOMreports是一个类库,包含多个类,Report321就是其中之一。您是一个明星!这就是问题所在。有了你最新的答案,问题就解决了。@Nullbyte我不是明星:p我想你需要一些咖啡。仅此而已:D