当前位置:  开发笔记 > 编程语言 > 正文

由于其保护级别,"设置"无法访问

如何解决《由于其保护级别,"设置"无法访问》经验,为你挑选了1个好方法。

我的Utilities.CS文件App_Code夹中有以下文件作为我的MVC4应用程序中使用的"帮助器"方法(构建操作设置为编译)

如图所示,代码中有一个断点......

应用程序编译(Ctrl-Shift-B)没有错误但是当我运行应用程序时,我在断点之后的CS0122: 'Settings' is inaccessible due to its protection level后续return语句中得到一个.

AdminGroup设置public在"设置设计器"中定义

突破点一线从来没有被击中,可能是由于运行时编译错误......但如果我编译它,它为什么重新编译后在运行时?

(对不起,我是MVC的新手,所以不确定发生了什么)

namespace MyApplication
{
    public class Utilities
    {
        public static string UserID
        {
            get
            {
                return Regex.Replace(WindowsIdentity.GetCurrent().Name, @".+\\", "").ToUpper();
            }
        }

        public static bool IsAdmin
        {
            get
            {
                System.Diagnostics.Debug.WriteLine("Break point on this line");
                return (HttpContext.Current.User.IsInRole(Properties.Settings.Default.AdminGroup));
            }
        }
    }

}

UPDATE

//------------------------------------------------------------------------------
// 
//     This code was generated by a tool.
//     Runtime Version:4.0.30319.42000
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// 
//------------------------------------------------------------------------------

namespace MyApplication.Properties {


    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
    internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {

        private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));

        public static Settings Default {
            get {
                return defaultInstance;
            }
        }

    //
    // Other Settings Removed
    //

        [global::System.Configuration.ApplicationScopedSettingAttribute()]
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
        [global::System.Configuration.DefaultSettingValueAttribute("MYDOMAIN\\ADMINGROUP")]
        public string AdminGroup {
            get {
                return ((string)(this["AdminGroup"]));
            }
        }
    }
}

Rahul Nikate.. 19

这个错误是因为Settings类是internal.

我假设您已经从visual studio项目属性部分设置中创建和修改了设置.Right click on project > Properties > Settings.有一个名为Access Modifier的下拉菜单,您需要将其从内部更改为公共.

在此输入图像描述

有关internal关键字的更多信息: internal关键字是类型和类型成员的访问修饰符.内部类型或成员只能在同一程序集中的文件中访问



1> Rahul Nikate..:

这个错误是因为Settings类是internal.

我假设您已经从visual studio项目属性部分设置中创建和修改了设置.Right click on project > Properties > Settings.有一个名为Access Modifier的下拉菜单,您需要将其从内部更改为公共.

在此输入图像描述

有关internal关键字的更多信息: internal关键字是类型和类型成员的访问修饰符.内部类型或成员只能在同一程序集中的文件中访问


非常感谢!我花了大约一个小时试图弄清楚我做错了什么.
天啊....现在拍我......我到底怎么看不到......可能是因为我的硬盘正在死亡,在出路上造成各种其他问题,谢谢和抱歉浪费您的时间
推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有