I have the following Utilities.CS
file in my App_Code
folder as "helper" methods used throughout my MVC4 application (Build Action set to Compile)
There is a break-point in the code as indicated...
The application compiles (Ctrl-Shift-B) with no errors but when I run the application I get a CS0122: 'Settings' is inaccessible due to its protection level
at the subsequent return
statement after the break-point.
The AdminGroup
setting is defined as public
in the Settings Designer
The break-point line never gets hit, probably due to run-time compilation error... but if I've compiled it, why is it re-compiling at run-time?
(Sorry, I'm new to MVC so no really sure what's going on)
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
//------------------------------------------------------------------------------
// <auto-generated>
// 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.
// </auto-generated>
//------------------------------------------------------------------------------
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"]));
}
}
}
}
should make it public #58684.
It may be inaccessible due to its protection level" error occurs when you declare a private method or property. As a result, you cannot access them. Please add the Protected or Public access level (see Access Levels in Visual Basic) to your "GetTitle" method's declaration and let me know your results.
The error CS0122 is resolved by changing the member's access modifier to public .
This error is because of Settings
class is internal
.
I assumed that you have created and modified settings from visual studio project properties section settings. Right click on project > Properties > Settings.
There is a drop down menu called Access Modifier that you need to change from internal to public.
For more information on internal keyword: The internal keyword is an access modifier for types and type members. Internal types or members are accessible only within files in the same assembly
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With