allow make private static field/method accessiable

This commit is contained in:
zhurengong
2022-02-10 15:16:41 +08:00
parent 8ac7e08aac
commit 8dca5fa491
@@ -67,7 +67,7 @@ namespace Barotrauma
public static void MakeFieldAccessible(IUserDataDescriptor IUUD, string fieldName) public static void MakeFieldAccessible(IUserDataDescriptor IUUD, string fieldName)
{ {
var descriptor = (StandardUserDataDescriptor)IUUD; var descriptor = (StandardUserDataDescriptor)IUUD;
var field = IUUD.Type.GetField(fieldName, BindingFlags.NonPublic | BindingFlags.Instance); var field = IUUD.Type.GetField(fieldName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);
descriptor.RemoveMember(fieldName); descriptor.RemoveMember(fieldName);
descriptor.AddMember(fieldName, new FieldMemberDescriptor(field, InteropAccessMode.Default)); descriptor.AddMember(fieldName, new FieldMemberDescriptor(field, InteropAccessMode.Default));
} }
@@ -75,7 +75,7 @@ namespace Barotrauma
public static void MakeMethodAccessible(IUserDataDescriptor IUUD, string methodName) public static void MakeMethodAccessible(IUserDataDescriptor IUUD, string methodName)
{ {
var descriptor = (StandardUserDataDescriptor)IUUD; var descriptor = (StandardUserDataDescriptor)IUUD;
var method = IUUD.Type.GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Instance); var method = IUUD.Type.GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static);
descriptor.RemoveMember(methodName); descriptor.RemoveMember(methodName);
descriptor.AddMember(methodName, new MethodMemberDescriptor(method, InteropAccessMode.Default)); descriptor.AddMember(methodName, new MethodMemberDescriptor(method, InteropAccessMode.Default));
} }