Compiler Error CS0122

'member' is inaccessible due to its protection level

The access modifier for a class member prevents accessing the member. For more information, see Access Modifiers (C# Programming Guide).

One cause of this (not shown in the sample below) can be omitting the /out compiler flag on the target of a friend assembly. For more information, see Friend Assemblies (C# Programming Guide) and /out (Set Output File Name) (C# Compiler Options)

Example

The following sample generates CS0122:

// CS0122.cs
public class MyClass
{
    // Make public to resolve CS0122
    void MyMethod()
    {
    }
}

public class MyClass2
{
    public static int Main()
    {
        MyClass a = new MyClass();
        // MyMethod is private
        a.MyMethod();   // CS0122
        return 0;
   }
}