Вот как вы создаете перечисления с roslyn;
class Program
{
static void Main(string[] args)
{
var member1 = Syntax.EnumMemberDeclaration(
identifier: Syntax.Identifier("Member1")
);
var declaration = Syntax.EnumDeclaration(
identifier: Syntax.Identifier("MyEnum"),
modifiers: Syntax.TokenList(Syntax.Token(SyntaxKind.PublicKeyword)),
members: Syntax.SeparatedList(member1)
);
Console.WriteLine(declaration.Format());
Console.ReadLine();
}
}
это возвращает:
public enum MyEnum
{
Member1
}
Теперь на ваш вопрос, я не знаю, действительно ли это то, что вам действительно нужно,
Во-первых, я думаю, что пока нет встроенных функций, позволяющих сделать это при прекомпиляции, поэтому вам нужно создать консольный exe-файл и вызывать его в событиях предварительной сборки.
Итак, на этомСкорее всего, лучше сделать это вручную с помощью генерации кода, а не в каждой сборке, если только эти таблицы не меняются очень часто.
В этом случае вам не нужен Roslyn, чтобы сделать это за вас, вы можете просто выплюнуть его с помощью любого программного обеспечения для генерации кода или развернуть свое собственное ...