Мне было любопытно, знает ли кто-нибудь о способе мониторинга информации о времени выполнения приложения .Net (какой метод вызывается и тому подобное)
и внедрение дополнительного кода для запуска определенных методов из отдельного запущенного процесса.
скажем, у меня есть два приложения:
app1.exe, который для простоты может быть
class Program
{
static void Main(string[] args)
{
while(true){
Somefunc();
}
}
static void Somefunc()
{
Console.WriteLine("Hello World");
}
}
и у меня есть второе приложение, которое я хочу иметь возможность обнаруживать, когда работает Somefunc() из приложения 1, и вводить свой собственный код,
class Program
{
static void Main(string[] args)
{
while(true){
if(App1.SomeFuncIsCalled)
InjectCode();
}
}
static void InjectCode()
{
App1.Console.WriteLine("Hello World Injected");
}
}
Таким образом, результатом будет приложение, которое можно было бы показать
Hello World
Hello World Injected
Я понимаю, что это будет не так просто (наверное), но я понятия не имею, возможно ли это вообще, и есть ли с чего начать.
Какие-либо предложения ?
Я видел подобное в Java, но никогда в С#.
РЕДАКТИРОВАТЬ: Чтобы уточнить, использование этого будет заключаться в добавлении системы плагинов в игру на основе .Net, к исходному коду которой у меня нет доступа.