Reo.Core.PredicateBuilder.CodeGeneration
10.0.73
See the version list below for details.
dotnet add package Reo.Core.PredicateBuilder.CodeGeneration --version 10.0.73
NuGet\Install-Package Reo.Core.PredicateBuilder.CodeGeneration -Version 10.0.73
<PackageReference Include="Reo.Core.PredicateBuilder.CodeGeneration" Version="10.0.73" />
<PackageVersion Include="Reo.Core.PredicateBuilder.CodeGeneration" Version="10.0.73" />
<PackageReference Include="Reo.Core.PredicateBuilder.CodeGeneration" />
paket add Reo.Core.PredicateBuilder.CodeGeneration --version 10.0.73
#r "nuget: Reo.Core.PredicateBuilder.CodeGeneration, 10.0.73"
#:package Reo.Core.PredicateBuilder.CodeGeneration@10.0.73
#addin nuget:?package=Reo.Core.PredicateBuilder.CodeGeneration&version=10.0.73
#tool nuget:?package=Reo.Core.PredicateBuilder.CodeGeneration&version=10.0.73
Reo.Core.PredicateBuilder.CodeGeneration
Описание пакета
Пакет Reo.Core.PredicateBuilder.CodeGeneration предназначен для автоматической генерации кода, связанного с
построением динамических предикатов для LINQ-запросов. Он упрощает создание сложных условий фильтрации данных, часто
используемых в приложениях, работающих с базами данных или коллекциями.
Основные функции:
- Автоматическая генерация расширений методов для построения предикатов.
- Использование XML-документации для определения параметров и логики фильтрации.
- Поддержка генерации кода для различных типов данных (например,
DateTime,TimeSpanи др.).
Основные компоненты
XmlDocTagsParser: Парсит XML-комментарии в исходном коде для извлечения информации о параметрах и условиях фильтрации.ExtensionsClassGenerator: Генерирует классы с расширениями методов, которые позволяют строить LINQ-выражения на основе определённых в XML-документации правил.BaseExtensionSyntax: Обеспечивает проверку и обработку базовых классов, на которых строится генерация кода.ExtensionsSourceOutput: Отвечает за создание и запись сгенерированного кода в файлы проекта.
Требования
- .NET: Совместим с .NET Standard 2.0 и выше.
- Зависимости:
Microsoft.CodeAnalysis.CSharp(для работы с Roslyn API).
Установка
Используйте следующие команды для установки пакета:
# NuGet Package Manager
Install-Package Reo.Core.PredicateBuilder.CodeGeneration
# .NET CLI
dotnet add package Reo.Core.PredicateBuilder.CodeGeneration
Настройка
Пакет не требует явной регистрации в контейнере DI (например, в ASP.NET Core). Он работает на уровне генерации кода в процессе компиляции проекта.
Примечание: Убедитесь, что в проекте настроены XML-комментарии для методов и свойств, которые будут использоваться в генерации кода.
Использование
Примеры использования:
1. Генерация предикатов для фильтрации данных
Предположим, у вас есть сущность User с свойством Age. С помощью сгенерированного кода можно создать фильтр:
var users = context.Users.Where(user => user.Age.PredicateBuilder.GreaterThan(18));
2. Использование параметров из XML-документации
XML-комментарии в исходном коде могут содержать метаданные, которые будут использованы для генерации:
/// <summary>
/// Фильтрует пользователей по возрасту.
/// </summary>
/// <param name="age">Минимальный возраст.</param>
public static Expression<Func<User, bool>> GreaterThan(int age) { ... }
3. Поддержка нескольких типов данных
Пакет автоматически генерирует код для типов, указанных в _generatedTypes (например, DateTime, TimeSpan,
DateOnly, TimeOnly).
Лицензия
Данный пакет распространяется под лицензией MIT.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- JetBrains.Annotations (>= 2025.2.4)
- Reo.Core.CodeGenerator (>= 10.0.73)
- stbychkov.AutoLoggerMessage (>= 1.0.15)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.85 | 0 | 3/31/2026 |
| 10.0.84 | 0 | 3/31/2026 |
| 10.0.83 | 67 | 3/30/2026 |
| 10.0.82 | 77 | 3/30/2026 |
| 10.0.81 | 82 | 3/30/2026 |
| 10.0.80 | 85 | 3/27/2026 |
| 10.0.79 | 78 | 3/26/2026 |
| 10.0.78 | 74 | 3/26/2026 |
| 10.0.77 | 79 | 3/25/2026 |
| 10.0.76 | 83 | 3/24/2026 |
| 10.0.75 | 84 | 3/23/2026 |
| 10.0.74 | 84 | 3/19/2026 |
| 10.0.73 | 84 | 3/19/2026 |
| 10.0.72 | 80 | 3/18/2026 |
| 10.0.71 | 84 | 3/18/2026 |
| 10.0.70 | 87 | 3/18/2026 |
| 10.0.69 | 95 | 3/17/2026 |
| 10.0.68 | 85 | 3/12/2026 |
| 10.0.67 | 88 | 3/10/2026 |
| 10.0.66 | 92 | 3/10/2026 |