Интеграция пользовательского компилятора с IDE Visual Studio

ФонЯ хочу создать собственный компилятор VB, расширяющий «оригинальный» компилятор, чтобы обрабатывать мои собственные атрибуты времени компиляции.

Вопрос: после того, как я создал свой собственный компилятор и получил исполняемый файл, способный компилировать код VB через стандартный интерфейс командной строки, как мне интегрировать этот компилятор с Visual Studio IDE? (такое, что нажатие «compile» или «build» будет использовать мой компилятор вместо компилятора по умолчанию).

РЕДАКТИРОВАТЬ: (Поправьте меня если я ошибаюсь)

Из приведенных здесь реакций я вижу, что этот вопрос немного шокирует, поэтому я более подробно объясню свои потребности и предпосылки: .NET предоставляет нам отличный механизм, называемый Атрибутами. Насколько я понимаю, создание атрибутов применяет их предполагаемое поведение к приписанному элементу (сборка, модуль, класс, метод и т. Д.) - атрибуты должны быть отражены. Таким образом, настоящая хитрость здесь заключается в отражении и применении поведения в нужном месте.

Возьмем, к примеру, сериализацию: мы украшаем класс атрибутом Serializable. Затем мы передаем экземпляр класса методу Serialize форматера. Форматировщик размышляет над экземпляром, проверяя, имеет ли он атрибут Serializable, и действуя соответствующим образом.

Теперь, если мы рассмотрим атрибуты Synchronization, Flags, Obsolete и CLSCompliant, тогда возникает реальный вопрос: кто на них задумывается? По крайней мере, в некоторых случаях это должен быть компилятор (и / или IDE). Поэтому кажется, что если я хочу создать пользовательские атрибуты, которые изменяют поведение элемента независимо от какого-либо конкретного потребителя, я должен расширить компилятор, чтобы отражать их при компиляции.

Конечно, это не мое личное понимание: книга "Прикладные атрибуты .NET"предоставляет полный пример создания пользовательского атрибута и пользовательского компилятора C # для отражения этого атрибута при компиляции (этот пример используется для реализации« проверенных исключений в стиле java »).

Ответы на вопрос(2)

Ваш ответ на вопрос