godsharp - GodSharp.FluentMember 2022.206.26
Source Generator for Fluent Member produced by GodSharp
PM> Install-Package GodSharp.FluentMember -Version 2022.206.26 -Source https://www.myget.org/F/godsharp/api/v3/index.json
> nuget.exe install GodSharp.FluentMember -Version 2022.206.26 -Source https://www.myget.org/F/godsharp/api/v3/index.json
> dotnet add package GodSharp.FluentMember --version 2022.206.26 --source https://www.myget.org/F/godsharp/api/v3/index.json
source https://www.myget.org/F/godsharp/api/v3/index.json
nuget GodSharp.FluentMember ~> 2022.206.26
Copy to clipboard
> choco install GodSharp.FluentMember --version 2022.206.26 --source https://www.myget.org/F/godsharp/api/v2
Import-Module PowerShellGet
Register-PSRepository -Name "godsharp" -SourceLocation "https://www.myget.org/F/godsharp/api/v2"
Install-Module -Name "GodSharp.FluentMember" -RequiredVersion "2022.206.26" -Repository "godsharp"
Copy to clipboard
GodSharp.FluentMember
Generate extension method to fluent set member for class, strcut, interface.
Package Version
| Name | NuGet | MyGet |
|---|---|---|
| GodSharp.FluentMember |
Get Started
Install Package
<ItemGroup> <PackageReference Include="GodSharp.FluentMember" Version="2021.206.26" /> </ItemGroup>Add Attribute
[FluentMemberGenerator(Partial = true)] public partial class User { public int Id { get; internal set; } public int Age { get; set; } internal string Name { get; set; } public string Secret { get; private set; } public Role Role { get; set; } = new(); [FluentMemberGenerator(Partial = true)] public partial struct Address { public string Country { get; set; } public string City { get; set; } internal string Postcode { get; set; } public string Secret { get; private set; } } }Build Project
You will be use fluent api to set member, like
With*andSetmethod by extension method.generated code like this:
//----------------------------------------------------------------------- ------- // <auto-generated> // Generated by SourceGenerator generator at 2022/6/26 15:07:32. // Source: User // </auto-generated> //------------------------------------------------------------------------------ using System; using System.Linq.Expressions; using GodSharp.FluentMember; namespace GodSharpFluentMemberTest; public partial class User { internal User WithId(Int32 id) { this.Id = id; return this; } public User WithAge(Int32 age) { this.Age = age; return this; } internal User WithName(String name) { this.Name = name; return this; } public User WithRole(Role role) { this.Role = role; return this; } public User Set<TMember>(Expression<Func<User,TMember>> predicate, TMember value) => TypeSetter.Set(this,predicate,value); } public static class UserExtensions { internal static User WithId(this User user ,Int32 id) { user.Id = id; return user; } public static User WithAge(this User user ,Int32 age) { user.Age = age; return user; } internal static User WithName(this User user ,String name) { user.Name = name; return user; } public static User WithRole(this User user ,Role role) { user.Role = role; return user; } public static User Set<TMember>(this User user, Expression<Func<User,TMember>> predicate, TMember value) => TypeSetter.Set(user, predicate, value); }
License
MIT
add #pragma warning disable CS1591
- .NETStandard 2.0: 2.0.0.0
OwnersSeay |
Authorsseayxu |
Project URLhttps://github.com/godsharp/FluentMember |
LicenseUnknown |
TagsFluentMember SourceGenerator GodSharp |
Info3 total downloads |
| 3 downloads for version 2022.206.26 |
| Download (138.44 KB) |
| Found on the current feed only |
Package history
| Version | Size | Last updated | Downloads | Mirrored? | |||
|---|---|---|---|---|---|---|---|
|
|
2022.206.26 | 138.44 KB | Sun, 26 Jun 2022 07:26:19 GMT | 3 |
|