代码拉取完成,页面将自动刷新
Generate extension method to fluent set member for class
, strcut
, interface
.
Name | NuGet | MyGet |
---|---|---|
GodSharp.FluentMember |
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);
}
MIT
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
1. 开源生态
2. 协作、人、软件
3. 评估模型