我这样写只是为了举例:
public class MyClass
{
private int MyMethod()
{
return 1;
}
}
是否有任何方法可以使用反射或其他方法在运行时将MyClass::MyMethod()
的访问修饰符更改为public 然后调用它?
最佳答案
不确定是否可以修改访问说明符,但可以通过反射调用私有(private)方法,如:
MyClass instance = new MyClass();
MethodInfo yourMethod = instance
.GetType()
.GetMethod("MyMethod", BindingFlags.NonPublic | BindingFlags.Instance);
var returnValue = yourMethod.Invoke(instance, new object[] { });
Console.WriteLine(returnValue);
关于c# - 在运行时更改访问修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19325361/