Время компиляции: как я могу проверить, используется ли тип данных (и / или значение) в методе
Во время компиляции, как я могу проверить, используется ли тип данных (и / или значение) в методе.
Я пытаюсь построить живую архитектуру, которая поддерживает плагины.
Я хочу, чтобы компилятор выдавал ошибку, если событие не вызывается внутри плагина.
Я использую VS2015 Preview.
Какие-либо предложения?
2 ответа
Этот вид проверки можно реализовать с помощью PostSharp. Это не тривиально, но проще, чем использование Mono.Cecil. SyntaxTreeVisitor и ISyntaxReflectionService являются хорошей основой для реализации алгоритма анализа, который должен вызываться из Aspect.CompileTimeValidate.
Рослин должна быть упомянута также. Он позволяет "расширять" компилятор C# (или VisualBasic) с помощью специальной диагностики, и он очень хорошо интегрирован с VS2015.
Отказ от ответственности: я разработчик PostSharp.
Я не думаю, что вы можете заставить компилятор выдать эту ошибку за вас. Возможно, вы сможете ввести дополнительный шаг сборки, который запускает консольное приложение C#, которое проверяет (используя отражение) то, что вы хотите.