Может ли генератор исходного кода генерировать методы с анонимными типами в качестве параметров?C#

Место общения программистов C#
Anonymous
Может ли генератор исходного кода генерировать методы с анонимными типами в качестве параметров?

Сообщение Anonymous »


Может ли генератор исходного кода сканировать сборку на предмет используемых анонимных типов и генерировать методы расширения специально для этих типов?

Например, у вас есть следующий код

var anon = new { Test = 123;} анон.SomeExtensionMethod(); // SomeExtensionMethod (пока) не существует Можно ли использовать генератор исходного кода для создания SomeExtensionMethod?

Я попробовал. Информация об имени и типе анонимного типа доступна при запуске генераторов исходного кода. Однако их имя содержит символы, недопустимые в коде, созданном не компилятором, поэтому моя попытка привела к чему-то вроде

публичный статический класс SourceGeneratedCode { public static void SomeExtensionMethod(this global:: value) { } } Что, конечно, не скомпилируется. Вот мне и интересно, можно ли как-нибудь это сделать?

Мне хотелось бы создать разные реализации этого метода для разных анонимных типов; это означает, что SomeExtensionMethod не может просто принимать object или быть универсальным или что-то в этом роде.

Вернуться в «C#»