Есть класс ApplicationClass с методом CustomMethod:
public class ApplicationClass : MonoBehaviour
{
protected void CustomMethod()
{
//любой код
}
}
От него наследуется NewClass:
public class NewClass : ApplicationClass
{
private void Awake()
{
ApplicationController.ScriptAdd(this);
}
}
NewClass при создании добавляет себя в массив scriptArr класса ApplicationController. А ScriptCustomMethod вызывает необходимые методы по требованию:
public class ApplicationController : MonoBehaviour
{
private static MonoBehaviour[] scriptArr;
public static void ScriptAdd(MonoBehaviour script)
{
Array.Resize(ref scriptArr, scriptArr?.Length + 1 ?? 1);
scriptArr[scriptArr.Length - 1] = script;
}
public static void ScriptCustomMethod(string methodName, object[] arg)
{
if (scriptArr == null) return;
for (int i = 0; i < scriptArr.Length; i++)
{
var dynMethod = scriptArr[i].GetType().GetMethod(methodName, BindingFlags.NonPublic | BindingFlags.Instance);
dynMethod?.Invoke(scriptArr[i], arg);
}
}
}
Нужно вызвать CustomMethod из NewClass используя ScriptCustomMethod:
private void Update()
{
ApplicationController.ScriptCustomMethod("CustomMethod", new object[] { });
}
Но найти его и вызвать используя различные комбинации BindingFlags не получается. Если CustomMethod переместить из ApplicationClass в NewClass, то вышеприведенный код работает.
Нужно было объявить:
private static ApplicationClass[] scriptArr;
Вместо:
private static MonoBehaviour[] scriptArr;
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Мне нужно идентифицировать если произошла ошибка в программе 1сНапример если служба выключена, то 1с выдаст ошибку (определенное окно)
Как можно сделать элемент DateTime в WPF, так чтобы не надо было вводить вручную точкиС маской какой-то например
такой вопросЕсть две БД, настроил master-detail, то есть это все работает правильно, открывает два DataGridView и при переходе по позициями, происходит...