allow make private static field/method accessiable: Merge pull request #38 from zhu-rengong/make_static_member_accessible

allow make private static field/method accessiable
This commit is contained in:
Evil Factory
2022-02-10 12:27:09 -03:00
committed by GitHub
@@ -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));
} }