Mud.ServiceCodeGenerator
1.1.6
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Mud.ServiceCodeGenerator --version 1.1.6
NuGet\Install-Package Mud.ServiceCodeGenerator -Version 1.1.6
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Mud.ServiceCodeGenerator" Version="1.1.6" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Mud.ServiceCodeGenerator" Version="1.1.6" />
<PackageReference Include="Mud.ServiceCodeGenerator" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Mud.ServiceCodeGenerator --version 1.1.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Mud.ServiceCodeGenerator, 1.1.6"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Mud.ServiceCodeGenerator@1.1.6
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Mud.ServiceCodeGenerator&version=1.1.6
#tool nuget:?package=Mud.ServiceCodeGenerator&version=1.1.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Mud 服务代码生成器
功能介绍
Mud 服务代码生成器是一个基于 Roslyn 的源代码生成器,用于自动生成服务层相关代码,提高开发效率。它包含以下主要功能:
- 服务类代码生成 - 根据实体类自动生成服务接口和服务实现类
- 依赖注入代码生成 - 自动为类生成构造函数注入代码,包括日志、缓存、用户管理等常用服务
- DTO代码生成 - 根据实体类自动生成数据传输对象
项目参数配置
在使用 Mud 服务代码生成器时,可以通过在项目文件中配置以下参数来自定义生成行为:
通用配置参数
<PropertyGroup>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<DefaultCacheManagerType>ICacheManager</DefaultCacheManagerType>
<DefaultUserManagerType>IUserManager</DefaultUserManagerType>
<DefaultLoggerVariable>_logger</DefaultLoggerVariable>
<DefaultCacheManagerVariable>_cacheManager</DefaultCacheManagerVariable>
<DefaultUserManagerVariable>_userManager</DefaultUserManagerVariable>
<ServiceGenerator>true</ServiceGenerator>
<EntitySuffix>Entity</EntitySuffix>
<ImpAssembly>Mud.System</ImpAssembly>
<EntityAttachAttributes>SuppressSniffer</EntityAttachAttributes>
</PropertyGroup>
<ItemGroup>
<CompilerVisibleProperty Include="DefaultCacheManagerType" />
<CompilerVisibleProperty Include="DefaultUserManagerType" />
<CompilerVisibleProperty Include="DefaultLoggerVariable" />
<CompilerVisibleProperty Include="DefaultCacheManagerVariable" />
<CompilerVisibleProperty Include="DefaultUserManagerVariable" />
<CompilerVisibleProperty Include="ServiceGenerator" />
<CompilerVisibleProperty Include="EntitySuffix" />
<CompilerVisibleProperty Include="ImpAssembly" />
<CompilerVisibleProperty Include="EntityAttachAttributes" />
</ItemGroup>
依赖项配置
<ItemGroup>
<PackageReference Include="Mud.ServiceCodeGenerator" Version="1.0.1" PrivateAssets="all" OutputItemType="Analyzer" ReferenceOutputAssembly="false"/>
</ItemGroup>
代码生成功能及样例
1. 服务类代码生成
在服务类程序项目中添加服务代码生成配置:
<PropertyGroup>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<EntityAssemblyPrefix>TestClassLibrary</EntityAssemblyPrefix>
</PropertyGroup>
<ItemGroup>
<CompilerVisibleProperty Include="EntityAssemblyPrefix" />
</ItemGroup>
在服务中添加服务代码生成特性:
[ServiceGenerator(EntityType = nameof(SysDeptEntity))]
public partial class SysDeptService
{
}
生成的代码将包含基于实体的完整服务接口和实现类。
2. 依赖注入代码生成
使用各种注入特性为类自动生成构造函数注入代码:
[ConstructorInject] // 字段构造函数注入
[LoggerInject] // 日志注入
[CacheInject] // 缓存管理器注入
[UserInject] // 用户管理器注入
[CustomInject(VarType = "IRepository<SysUser>", VarName = "_userRepository")] // 自定义注入
public partial class SysUserService
{
// 生成的代码将包含以下内容:
// 1. 构造函数参数
// 2. 私有只读字段
// 3. 构造函数赋值语句
}
生成的代码示例:
public partial class SysUserService
{
private readonly ILogger<SysUserService> _logger;
private readonly ICacheManager _cacheManager;
private readonly IUserManager _userManager;
private readonly IRepository<SysUser> _userRepository;
public SysUserService(
ILogger<SysUserService> logger,
ICacheManager cacheManager,
IUserManager userManager,
IRepository<SysUser> userRepository)
{
_logger = logger;
_cacheManager = cacheManager;
_userManager = userManager;
_userRepository = userRepository;
}
}
3. DTO代码生成
在实体程序项目中添加DTO代码生成配置:
<PropertyGroup>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<EntitySuffix>Entity</EntitySuffix>
<EntityAttachAttributes>SuppressSniffer</EntityAttachAttributes>
</PropertyGroup>
<ItemGroup>
<CompilerVisibleProperty Include="EntitySuffix" />
<CompilerVisibleProperty Include="EntityAttachAttributes"/>
</ItemGroup>
在实体中添加DTO代码生成DtoGenerator特性:
[DtoGenerator]
public class SysClientEntity : BaseEntity
{
// 无需生成DTO代码
[IgnoreGenerator]
public string DelFlag { get; set; }
// 其他属性将自动生成到DTO类中
public string Name { get; set; }
public string Code { get; set; }
}
维护者
许可证
本项目采用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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
.NETStandard 2.0
- No dependencies.
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 | |
|---|---|---|---|
| 1.4.5.3 | 52 | 12/31/2025 | |
| 1.4.5.2 | 66 | 12/31/2025 | |
| 1.4.5.1 | 88 | 12/29/2025 | |
| 1.4.5 | 286 | 12/27/2025 | |
| 1.4.4 | 323 | 12/26/2025 | |
| 1.4.3 | 356 | 12/24/2025 | |
| 1.4.2 | 332 | 12/19/2025 | |
| 1.4.1 | 331 | 12/16/2025 | |
| 1.4.0 | 142 | 12/14/2025 | |
| 1.3.9 | 407 | 12/11/2025 | |
| 1.3.8 | 426 | 12/10/2025 | |
| 1.3.7 | 336 | 12/5/2025 | |
| 1.3.6 | 454 | 12/1/2025 | |
| 1.3.5 | 336 | 11/30/2025 | |
| 1.3.4 | 142 | 11/28/2025 | |
| 1.3.3 | 192 | 11/27/2025 | |
| 1.3.2 | 200 | 11/25/2025 | |
| 1.3.1 | 177 | 11/25/2025 | |
| 1.3.0 | 513 | 11/24/2025 | |
| 1.2.9 | 464 | 11/23/2025 | |
| 1.2.8 | 653 | 11/21/2025 | |
| 1.2.7 | 736 | 11/19/2025 | |
| 1.2.6 | 726 | 11/18/2025 | |
| 1.2.5 | 613 | 11/17/2025 | |
| 1.2.4 | 604 | 11/12/2025 | |
| 1.2.3 | 521 | 11/6/2025 | |
| 1.2.2 | 517 | 11/4/2025 | |
| 1.2.1 | 524 | 10/31/2025 | |
| 1.2.0 | 475 | 10/28/2025 | |
| 1.1.9 | 471 | 10/15/2025 | |
| 1.1.8 | 452 | 10/9/2025 | |
| 1.1.7 | 397 | 10/4/2025 | |
| 1.1.6 | 469 | 9/30/2025 | |
| 1.1.5 | 480 | 9/29/2025 | |
| 1.1.4 | 446 | 7/11/2025 | |
| 1.1.3 | 271 | 12/31/2024 | |
| 1.1.2 | 239 | 12/30/2024 | |
| 1.1.1 | 230 | 12/30/2024 | |
| 1.1.0 | 236 | 12/29/2024 | |
| 1.0.9.4 | 235 | 12/28/2024 | |
| 1.0.9.3 | 241 | 12/28/2024 | |
| 1.0.9.1 | 246 | 12/26/2024 | |
| 1.0.9 | 236 | 12/26/2024 | |
| 1.0.8 | 240 | 12/25/2024 | |
| 1.0.7 | 240 | 12/25/2024 | |
| 1.0.6 | 237 | 12/25/2024 | |
| 1.0.5 | 240 | 12/25/2024 | |
| 1.0.4 | 236 | 12/25/2024 | |
| 1.0.3 | 238 | 12/25/2024 | |
| 1.0.2 | 240 | 12/25/2024 | |
| 1.0.1 | 239 | 12/25/2024 | |
| 0.3.1 | 246 | 12/26/2024 |