XFEExtension.NetCore.AutoConfig 1.3.0

dotnet add package XFEExtension.NetCore.AutoConfig --version 1.3.0                
NuGet\Install-Package XFEExtension.NetCore.AutoConfig -Version 1.3.0                
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="XFEExtension.NetCore.AutoConfig" Version="1.3.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add XFEExtension.NetCore.AutoConfig --version 1.3.0                
#r "nuget: XFEExtension.NetCore.AutoConfig, 1.3.0"                
#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.
// Install XFEExtension.NetCore.AutoConfig as a Cake Addin
#addin nuget:?package=XFEExtension.NetCore.AutoConfig&version=1.3.0

// Install XFEExtension.NetCore.AutoConfig as a Cake Tool
#tool nuget:?package=XFEExtension.NetCore.AutoConfig&version=1.3.0                

XFEExtension.NetCore.AutoConfig

描述

XFEExtension.NetCore.AutoConfig是一个可以自动实现配置文件存储的工具

自动实现配置文件的存储

基础用法
//创建配置文件类
partial class SystemProfile
{
    [ProfileProperty]
    string name;

    [ProfileProperty]
    int _age;
}

//使用配置文件
class Program
{
    static void Main(string[] args)
    {
        SystemProfile.Name = "Test";//在设置值的时候会自动记录并储存
        //SystemProfile.Age = 1;
        Console.WriteLine(SystemProfile.Name);
        Console.WriteLine(SystemProfile.Age);//下次打开程序会自动读取上次程序退出时储存的值
    }
}
使用ProfileList和ProfileDictionary来储存集合或字典
//配置文件类
partial class SystemProfile
{
    [ProfileProperty]
    ProfileList<SystemProfile, string> nameList = [];

    [ProfileProperty]
    ProfileDictionary<SystemProfile, string, long> nameIdDictionary = [];
}

//使用配置文件
class Program
{
    static void Main(string[] args)
    {
        SystemProfile.NameList.Add("张三"); //在添加值的时候会自动记录并储存
        SystemProfile.NameList.AddRange(["李四", "王五"]); //添加多条记录
        SystemProfile.NameList.Remove("李四"); //删除值的时候也会自动记录
        SystemProfile.NameIdDictionary.Add("张三", "0da87wd89a-0dwa8d"); //字典也是一样
    }
}
设置get和set方法
partial class SystemProfile
{
    [ProfileProperty]
    [ProfilePropertyAddGet(@"Console.WriteLine(""获取了Name"")")]
    [ProfilePropertyAddGet("return Current.name")]
    [ProfilePropertyAddSet(@"Console.WriteLine(""设置了Name"")")]
    [ProfilePropertyAddSet("Current.name = value")]
    string name = string.Empty;

    [ProfileProperty]
    [ProfilePropertyAddGet(@"Console.WriteLine(""获取了Age"")")]
    [ProfilePropertyAddGet("return Current._age")]
    [ProfilePropertyAddSet(@"Console.WriteLine(""设置了Age"")")]
    [ProfilePropertyAddSet("Current._age = value")]
    int _age;
}
设置初始值
partial class SystemProfile
{
    [ProfileProperty]
    string name = "John Wick";

    [ProfileProperty]
    int _age = 59;
}
为属性添加注释
partial class SystemProfile
{
    /// <summary>
    /// 名称
    /// 这段注释会自动添加至自动生成的Name属性上
    /// </summary>
    [ProfileProperty]
    string name;

    [ProfileProperty]
    int _age;
}
使用部分方法来设置get和set方法
partial class SystemProfile
{
    [ProfileProperty]
    string name;

    [ProfileProperty]
    int _age;

    static partial void GetNameProperty()
    {
        Console.WriteLine("获取了Name");
    }

    static partial void SetNameProperty(string value)
    {
        Console.WriteLine($"设置了Name:从{Name}变为了{value}");
    }

    static partial void GetAgeProperty()
    {
        Console.WriteLine("获取了Age");
    }

    static partial void SetAgeProperty(int value)
    {
        Console.WriteLine($"设置了Age:从{Age}变为了{value}");
    }
}
Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.3.0 34 11/9/2024
1.2.0 33 11/9/2024
1.1.1 142 7/13/2024
1.1.0 98 7/13/2024
1.0.4 95 6/4/2024
1.0.3 86 6/4/2024
1.0.2 72 6/4/2024
1.0.1 98 6/4/2024
1.0.0 95 6/4/2024

## 调整

调整了ProfileList的泛型顺序和名称

## 新增

新增ProfileDictionary,与ProfileList类似,可以在增删改的时候自动存储

## 严重