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

Copy to clipboard

> nuget.exe install GodSharp.FluentMember -Version 2022.206.26 -Source https://www.myget.org/F/godsharp/api/v3/index.json

Copy to clipboard

> dotnet add package GodSharp.FluentMember --version 2022.206.26 --source https://www.myget.org/F/godsharp/api/v3/index.json

Copy to clipboard
<PackageReference Include="GodSharp.FluentMember" Version="2022.206.26" />
Copy to clipboard
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

Copy to clipboard
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

Azure DevOps builds (main) GitHub Workflow Status (branch)

Generate extension method to fluent set member for class, strcut, interface.

Package Version

Name NuGet MyGet
GodSharp.FluentMember NuGet MyGet

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* and Set method 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
  • .NETStandard 2.0: 2.0.0.0

Owners

Seay

Authors

seayxu

Project URL

https://github.com/godsharp/FluentMember

License

Unknown

Tags

FluentMember SourceGenerator GodSharp

Info

3 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