Mono Class Library: System NamespaceSystem.MethodAccessException Class |
See Also: MethodAccessException Members
System.Object
System.Exception
System.SystemException
System.MemberAccessException
System.MethodAccessException
|
All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.
Note: This exception is thrown when the access level of a method in a class library is changed, and one or more assemblies referencing the library have not been recompiled. This exception is also thrown when an attempt to invoke a method via reflection fails because the caller does not have the required permissions.[Edit]
The following example demonstrates a scenario under which MethodAccessException is thrown.
The following code contains a class with a public method (MyMethod). This class is compiled into a class library.
C# Example using System; namespace TestNameSpace { public class Class1 { public Class1() { Console.WriteLine ("Constructing with public method."); } public void MyMethod () { Console.WriteLine ("Calling MyMethod."); } } }The following code references the class library above, and accesses TestNameSpace.Class1.MyMethod. This code is compiled into an application.
C# Example using System; using TestNameSpace; class AppTest { public static void Main() { Class1 test = new Class1(); test.MyMethod(); } }The output of the application is
Constructing with public method.
Calling MyMethod.The code for the class library is changed and recompiled so that TestNameSpace.Class1.MyMethod is no longer public. The following code changes MyMethod from public to private.
C# Example using System; namespace TestNameSpace { public class Class1 { public Class1() { Console.WriteLine ("Constructing with private method."); } private void MyMethod () { Console.WriteLine ("Calling MyMethod."); } } }When the application is executed again without being recompiled, the output is
Unhandled Exception: System.MethodAccessException: TestNameSpace.Class1.MyMethod()
at AppTest.Main()
Namespace: System
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0