Biwen.AutoClassGen
1.0.0.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 Biwen.AutoClassGen --version 1.0.0.6
NuGet\Install-Package Biwen.AutoClassGen -Version 1.0.0.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="Biwen.AutoClassGen" Version="1.0.0.6" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Biwen.AutoClassGen" Version="1.0.0.6" />
<PackageReference Include="Biwen.AutoClassGen" />
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 Biwen.AutoClassGen --version 1.0.0.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Biwen.AutoClassGen, 1.0.0.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 Biwen.AutoClassGen@1.0.0.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=Biwen.AutoClassGen&version=1.0.0.6
#tool nuget:?package=Biwen.AutoClassGen&version=1.0.0.6
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Biwen.AutoClassGen
Usage scenario: In many cases, we will have a lot of request objects, such as GetIdRequest, GetUserRequest, etc..., and these requests may have a large number of the same fields. For example, the multi-tenant Id, the number of pages, and these attribute fields may have validation rules, binding rules, and Swagger descriptions. If all this code needs to be written, it will add a lot of work, so Biwen.AutoClassGen came into being to solve this pain point...
Useage
1.Define Interface
/// <summary>
/// Pager Interface
/// </summary>
public interface IPager
{
/// <summary>
/// current page
/// </summary>
[DefaultValue(0), Description("start 0 to int.max")]
[Range(0, int.MaxValue)]
int? CurrentPage { get; set; }
/// <summary>
/// length of page
/// </summary>
[DefaultValue(10), Description("between 10 an 30")]
[Range(10, 30)]
int? PageLen { get; set; }
}
/// <summary>
/// Query Interface
/// </summary>
public interface IQuery
{
/// <summary>
/// KeyWord
/// </summary>
[StringLength(100), Description("Keyword for search")]
string? KeyWord { get; set; }
}
/// <summary>
/// Tenant Request
/// </summary>
public interface ITenantRequest
{
/// <summary>
/// TenantId
/// </summary>
[Required, Description("Tenant ID"), DefaultValue("default")]
[FromHeader(Name = "tenant-id")]
string? TenantId { get; set; }
}
2.Inherent interface and mark [AutoGen] Attribute
//can add multi AutoGen Attribute
[AutoGen("QueryRequest", "Biwen.AutoClassGen.Models")]
[AutoGen("Query2Request", "Biwen.AutoClassGen.Models")]
public interface IQueryRequest : IPager, IQuery
{
}
/// <summary>
/// MyTenantRequest
/// </summary>
[AutoGen("MyTenantRequest", "Biwen.AutoClassGen.Models")]
public interface ITenantRealRequest : ITenantRequest
{
}
//partial class for your logic
public partial class QueryRequest
{
public string TestMethod(string arg1, int arg2)
{
return $"{arg1} {arg2}";
}
}
3.Enjoy!!! finally auto generated class for you
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Text;
using System.Threading.Tasks;
using Biwen.AutoClassGen.TestConsole.Interfaces;
#pragma warning disable
namespace Biwen.AutoClassGen.Models
{
public partial class QueryRequest : IQueryRequest
{
/// <inheritdoc cref = "IPager.CurrentPage"/>
[System.ComponentModel.DefaultValueAttribute(0)]
[System.ComponentModel.DescriptionAttribute("start 0 to int.max")]
[System.ComponentModel.DataAnnotations.RangeAttribute(0, 2147483647)]
public int? CurrentPage { get; set; }
/// <inheritdoc cref = "IPager.PageLen"/>
[System.ComponentModel.DefaultValueAttribute(10)]
[System.ComponentModel.DescriptionAttribute("between 10 an 30")]
[System.ComponentModel.DataAnnotations.RangeAttribute(10, 30)]
public int? PageLen { get; set; }
/// <inheritdoc cref = "IQuery.KeyWord"/>
[System.ComponentModel.DataAnnotations.StringLengthAttribute(100)]
[System.ComponentModel.DescriptionAttribute("Keyword for search")]
public string? KeyWord { get; set; }
}
public partial class Query2Request : IQueryRequest
{
/// <inheritdoc cref = "IPager.CurrentPage"/>
[System.ComponentModel.DefaultValueAttribute(0)]
[System.ComponentModel.DescriptionAttribute("start 0 to int.max")]
[System.ComponentModel.DataAnnotations.RangeAttribute(0, 2147483647)]
public int? CurrentPage { get; set; }
/// <inheritdoc cref = "IPager.PageLen"/>
[System.ComponentModel.DefaultValueAttribute(10)]
[System.ComponentModel.DescriptionAttribute("between 10 an 30")]
[System.ComponentModel.DataAnnotations.RangeAttribute(10, 30)]
public int? PageLen { get; set; }
/// <inheritdoc cref = "IQuery.KeyWord"/>
[System.ComponentModel.DataAnnotations.StringLengthAttribute(100)]
[System.ComponentModel.DescriptionAttribute("Keyword for search")]
public string? KeyWord { get; set; }
}
public partial class MyTenantRequest : ITenantRealRequest
{
/// <inheritdoc cref = "ITenantRequest.TenantId"/>
[System.ComponentModel.DataAnnotations.RequiredAttribute]
[System.ComponentModel.DescriptionAttribute("Tenant ID")]
[System.ComponentModel.DefaultValueAttribute("default")]
[Microsoft.AspNetCore.Mvc.FromHeaderAttribute(Name = "tenant-id")]
public string? TenantId { get; set; }
}
}
#pragma warning restore
Report Diagnostic Code
- GEN001: The interface marked [AutoGen] should be inherent one or more interface
- GEN011: Illegal naming
- GEN021: It is recommended to use the same namespace name
- GEN031: Suggestions to use [AutoGen] attribute to mark the interface
| 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.8.7 | 181 | 10/12/2025 |
| 1.8.6 | 167 | 9/28/2025 |
| 1.8.5.1 | 272 | 9/15/2025 |
| 1.8.1 | 244 | 4/18/2025 |
| 1.8.0 | 463 | 4/18/2025 |
| 1.7.0 | 242 | 4/8/2025 |
| 1.6.0 | 217 | 4/3/2025 |
| 1.5.6 | 201 | 3/19/2025 |
| 1.5.5 | 203 | 2/18/2025 |
| 1.5.4 | 192 | 11/27/2024 |
| 1.5.3 | 223 | 11/12/2024 |
| 1.5.2 | 157 | 11/8/2024 |
| 1.5.1.3 | 200 | 9/26/2024 |
| 1.5.0 | 192 | 9/18/2024 |
| 1.3.8 | 190 | 9/5/2024 |
| 1.3.7.2 | 195 | 9/4/2024 |
| 1.3.6 | 189 | 8/30/2024 |
| 1.3.3 | 217 | 6/19/2024 |
| 1.3.2.3 | 412 | 4/10/2024 |
| 1.2.1.3 | 284 | 1/22/2024 |
| 1.2.1.2 | 418 | 11/12/2023 |
| 1.2.0 | 260 | 11/7/2023 |
| 1.1.0.2 | 246 | 11/5/2023 |
| 1.0.0.6 | 229 | 11/4/2023 |
| 1.0.0 | 186 | 10/31/2023 |
Biwen.AutoClassGen