0

我收到以下错误:

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

不知道为什么我会收到这个错误。请帮忙。谢谢你。

4

2 回答 2

2

字面意思是:类型StaticReport不是公共的。

由于它是一个部分类,您可能需要查看两个声明,“主”声明应该使用public修饰符。

默认访问级别是internal并且您不能在公共方法的签名中使用内部类型。打电话是不可能的。

于 2012-11-02T07:26:40.553 回答
1

InsertStaticReportAudit您有一个带有 type 参数的公共方法StaticReport。此类型公开。程序集之外的调用者将无法调用该方法,这就是编译器不接受它的原因。

你必须StaticReport公开或InsertStaticReportAudit不公开。

于 2012-11-02T07:29:32.777 回答