Есть библиотека которую мне нужно динамически вызывать из приложения.
Библиотека обфусцируется через ConfuserEx.
Не обфусцируются (не переименовываются) только неймспейс, класс и основная функция которую я буду вызывать.
Вызываю метод (который не заренеймлен обфускатором) таким образом:
Assembly A = Assembly.LoadFrom(".\Example.dll");
Type ClassType = A.GetType("Namespace.Class", true);
object Obj = Activator.CreateInstance(ClassType);
System.Reflection.MethodInfo MI = ClassType.GetMethod("Main");
MI.Invoke(Obj, null);
Все работает, но на Invoke вылетает не пойми откуда TypeLoadException.
Я так понял это происходит уже в самом методе Main, который вызывает уже обфусцированные методы.
Пример экцепшена:
System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.TypeLoadException: A type load exception has occurred.
at ZMLoader.Loader.Main () [0x00000] in <filename unknown>:0
at (wrapper managed-to-native) System.Reflection.MonoMethod:InternalInvoke (object,object[],System.Exception&)
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
--- End of inner exception stack trace ---
at System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) [0x00000] in <filename unknown>:0
at System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) [0x00000] in <filename unknown>:0
at ACZM.Module.Initialize () [0x00000] in <filename unknown>:0
Как исправить это и получить таки рабочий вызов функции Main?
Так же буду рад альтернативным путям достижения моей цели, если таковые имеются.