Семантическую модель можно получить через компиляцию в Roslyn. Она создаётся на основе **синтаксического дерева** и **таблиц символов** (таблицы содержат информацию о типах, методах, переменных и других символах в коде).
Пример создания семантической модели:
```csharp
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using System.IO;
var code = File.ReadAllText("path/to/file.cs");
var syntaxTree = CSharpSyntaxTree.ParseText(code);
var compilation = CSharpCompilation.Create("MyCompilation")
.AddReferences(MetadataReference.CreateFromFile(typeof(object).Assembly.Location))
.AddSyntaxTrees(syntaxTree);
// Получение семантической модели для данного синтаксического дерева
SemanticModel semanticModel = compilation.GetSemanticModel(syntaxTree);
```
С помощью этой модели можно затем запрашивать символы, типы и анализировать другие аспекты исходного кода.