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 ではありません。

これは部分クラスであるため、両方の宣言を確認する必要がある場合があるため、「main」宣言ではpublic修飾子を使用する必要があります。

デフォルトのアクセス レベルはinternalであり、パブリック メソッドのシグネチャで内部型を使用することはできません。呼び出すことは不可能でしょう。

于 2012-11-02T07:26:40.553 に答える
1

InsertStaticReportAudittype のパラメーターを持つpublic メソッドがありますStaticReport。このタイプパブリックではありません。アセンブリ外の呼び出し元はメソッドを呼び出すことができないため、コンパイラはメソッドを受け入れません。

StaticReport公開または非公開にする必要がありますInsertStaticReportAudit

于 2012-11-02T07:29:32.777 に答える