В Visual Studio я могу щелкнуть правой кнопкой мыши метод из скомпилированной сборки и выбрать «Peek Definition», чтобы увидеть список определений методов, свойств, перечислений и т. Д. c из этого класса. Это определение имеет квалификацию [from metadata]
, указывающую, что это не фактический источник, а что-то, сгенерированное из (я предполагаю) отраженных метаданных.
Мой вопрос заключается в том, что на самом деле создает этот код, и могу ли я получить к нему доступ? программно? Моя цель - взять стороннюю сборку и создать из нее фиктивный код. Например, учитывая сборку, скомпилированную из класса, подобного:
public class TheirClass
{
public TheirClass()
{
// initialization magic
}
public string Name { get; private set; }
public void SayHowdy() { Console.WriteLine("Howdy"); }
private int Add(int x, int y) => x + y;
}
Я хочу сгенерировать минимальный код, подобный:
public class TheirClass
{
public TheirClass() { }
public string Name { get; }
public void SayHowdy() => throw new NotImplementedException();
}
Итак, учитывая, что функция «Peek Definition» в Visual Studio уже выполняет 90%, как я могу получить доступ к этому инструменту программно?