我收到以下错误:
Inconsistent accessibility: parameter type 'RR.DAL.LINQSqlCLient.StaticReport' is less accessible than method 'RR.BLL.AuditTrail.InsertStaticReportAudit(RR.DAL.LINQSqlCLient.StaticReport, string)'
D:\My Projects\ASP Projects\Development\RapidReportTool\Working Directory\App_Code\BLL\AuditTrail.cs
这是我的代码:
public static void InsertStaticReportAudit(StaticReport staticReport, string filterString)
{
if (System.Web.HttpContext.Current.Session["AuditTrail"] != null)
{
AuditTrail CurrAuditTrail = (AuditTrail)System.Web.HttpContext.Current.Session["AuditTrail"];
AuditTrailReports auditTrailReport = new AuditTrailReports();
auditTrailReport.ID = AuditTrailReports.Insert(CurrAuditTrail.ID, staticReport.ID, filterString, DateTime.Now, true);
System.Web.HttpContext.Current.Session["AuditTrailReport"] = auditTrailReport;
}
}
参数StaticReport类:
partial class StaticReport
{
public bool BelongsToReportCategory(int reportCategoryID)
{
//If there is an entry StaticReport_ReportCategories junction table,
//then this static report belongs to the report category
RapidReportDataContext db = new RapidReportDataContext();
var query = from sr_sc in db.StaticReport_ReportCategories
where sr_sc.StaticReportID == this.ID && sr_sc.ReportCategoryID == reportCategoryID
select sr_sc;
if (query.Count() > 0)
return true;
else
return false;
}
}
不确定我为什么会收到此错误。请帮忙。谢谢。
答案 0 :(得分:2)
它非常直观:类型StaticReport
不公开。
由于它是一个局部类,你可能需要查看两个声明,'main'声明应该使用public
修饰符。
默认访问级别为internal
,您不能在公共方法的签名中使用内部类型。打电话是不可能的。
答案 1 :(得分:1)
您的公共方法InsertStaticReportAudit
的参数类型为StaticReport
。此类不是公开。程序集外部的调用者将无法调用该方法,这就是编译器不接受它的原因。
您必须将StaticReport
公开或InsertStaticReportAudit
非公开。