Programmati c доступ к «взглянуть» код в Visual Studio - PullRequest
0 голосов
/ 10 февраля 2020

В 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%, как я могу получить доступ к этому инструменту программно?

...