Skip to main content

UnsafeAcessor | Acessar método privado

  • UnsafeAcessor
//Forma antiga de acessar um método privado

var name = typeof(Example)
.GetMethod("Method", BindingFlags.Instance | BindingFlags.NonPublic) !
Invoke(example, Array.Empty<object>());

-------------------

public class Example{

private string Method(){
return "";
}

}

//Forma nova de acessar um método privado

public class Caller
{

[UnsafeAccessor(UnsafeAccessorKind.Method, Name = "Method")]
public static extern string GetMethod(Example example)

[UnsafeAccessor(UnsafeAccessorKind.Field, Name = "Field")]
public static extern ref string GetField(Example example);
}