C # Przechwytuje / zmienia / przekierowuje metodę

Powiedzmy, że mam prywatną, „statyczną”, nie statyczną, boolową metodę w dll innej firmy. Cała ta metoda zwraca wartość. Nic więcej. W jaki sposób przechodzę do przechwytywania wywołań do tej metody, zmieniając jej IL OpCodes / body body lub przekierowując ją do dodatkowej, nadpisanej lub pochodnej metody.

Nie chcę dekompilować biblioteki innej firmy, ręcznie zmieniać źródła i przekompilować go. Wolałbym też nie zapisywać złożenia na dysku, ponieważ wymagałoby to również użycia „ponownie skompilowanego” zespołu zamiast oryginału.

Zasadniczo chcę być w stanie korzystać z oryginalnego dll - żadnych zamienników ani zmian plików. Chcę tylko zrobić to, o czym wspomniałem powyżej.

Czy jest jakiś sposób na to? Jeśli tak, czy możesz opracować lub opublikować odniesienia / samouczki / itp.

Wiem także o modyfikatorach wirtualnych, nadpisujących i nowych, ale pamiętaj, że I: nie mam źródła wspomnianej biblioteki DLL innej firmy, nie mogę uzyskać dostępu do źródła, nie chcę dekompilować za pomocą czegoś takiego jak dotPeek i rekompilować.

Dzięki!

Edytuj: Zapomniałem wspomnieć o pozostałej części infrastruktury: MainProgram ładuje ThirdPartyDLL. MainProgram ładuje również MyPluginDLL. Próbuję zmienić metodę w ThirdPartyDLL z MyPluginDLL, tak że gdy MainProgram wywoła wspomnianą metodę, wywoła zmienioną metodę. Chcę móc to zrobić BEZ zapisywania nowego złożenia i ponownego uruchamiania MainProgramu z nowym zespołem. Zasadniczo chcę to zrobić albo przy starcie, albo po uruchomieniu programu MainProgram.

questionAnswers(1)

yourAnswerToTheQuestion