Ich war gespannt, ob jemand eine Möglichkeit, wußte eine .NET-Anwendung Laufzeit Informationen zu überwachen (welche Methode aufgerufen und so wird) zuWie injiziert Code in C# Methodenaufrufen von einer separaten App
und Injizieren zusätzlichen Code auf bestimmten Methoden von einem separaten laufenden Prozess ausgeführt werden.
sagen, ich habe zwei Anwendungen:
App1.exe, dass der Einfachheit halber
class Program
{
static void Main(string[] args)
{
while(true){
Somefunc();
}
}
static void Somefunc()
{
Console.WriteLine("Hello World");
}
}
und ich habe eine zweite Anwendung sein könnte, dass ich wünschte, wenn sie erkennen können someFunc() aus der Anwendung 1 läuft und seinen eigenen Code injizieren,
class Program
{
static void Main(string[] args)
{
while(true){
if(App1.SomeFuncIsCalled)
InjectCode();
}
}
static void InjectCode()
{
App1.Console.WriteLine("Hello World Injected");
}
}
So Das Ergebnis Anwendung wäre würde man zeigen
Hello World
Hello World Injected
Ich verstehe, es wird nicht so einfach sein (durch eine Totale) aber ich habe keine Ahnung, ob es überhaupt möglich ist und ob es wo überhaupt anfangen soll.
Irgendwelche Vorschläge?
Ich habe ähnliche in Java getan, aber nie in C# gesehen.
EDIT: Um zu verdeutlichen, wäre die Verwendung von dies ein Plugin-System zu einem .Net-basierten Spiel hinzuzufügen, die ich keinen Zugriff auf den Quellcode von haben.
Bitte werfen Sie einen Blick auf diese: http://StackOverflow.com/q/13169865/75500 – Shimmy