C#  

How to Access Private Method Outside the Class in C#

Introduction

This article exlains how to access a private method outside of the class. It is possible using reflection.

Use the following procedure:

Step 1: Create a console application in Visual Studio.

Step 2: Add 2 namespaces 

  1. System
  2. System.Reflection

Step 3: Now create a class and inside that class create one method that will be private as follows:

class PrivateMethodClass
{
    //Private Method
    private void PrivateMethod()
    {
        Console.WriteLine("\n\n\n\t Hello C-Sharp Corner\n\t This is a Private Method!! :D\n\n");
    }
}
C#

Step 4: Now by using the main method call the method as follows: 

class Program
{
    static void Main(string[] args)
    {
        typeof(PrivateMethodClass).GetMethod("PrivateMethod", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(new PrivateMethodClass(), null);
    }
}
C#

Complete Code: 

using System;
using System.Reflection;

namespace PrivateMethodAccess
{
    class PrivateMethodClass
    {
        //Method is declared as private...
        private void PrivateMethod()
        {
            Console.WriteLine("\n\n\n\t Hello C-Sharp Corner\n\t This is a Private Method!! :D\n\n");
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            typeof(PrivateMethodClass).GetMethod("PrivateMethod", BindingFlags.NonPublic | BindingFlags.Instance).Invoke(new PrivateMethodClass(), null);
        }
    }
}
C#

Output

Output