Reflexor 0.0.6
dotnet add package Reflexor --version 0.0.6
NuGet\Install-Package Reflexor -Version 0.0.6
<PackageReference Include="Reflexor" Version="0.0.6"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="Reflexor" Version="0.0.6" />
<PackageReference Include="Reflexor"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add Reflexor --version 0.0.6
#r "nuget: Reflexor, 0.0.6"
#:package Reflexor@0.0.6
#addin nuget:?package=Reflexor&version=0.0.6
#tool nuget:?package=Reflexor&version=0.0.6
Reflexor
Reflexor is a C# source generator that produces mutable proxy types for immutable record and class types.
Whether you're working with immutable data models and need editable views, UI bindings, or draft mutations, Reflexor lets you work with a mutable representation of your readonly types — without writing boilerplate code.
✨ Features
- 🧬 Generates mutable
structproxies for immutablerecordandclasstypes. - 🛠️ Keeps property names, types, and structure aligned.
- 💨 Designed for performance and minimal memory overhead.
- ✅ Supports
init-only and positional parameters. - ✅ Supports static members and static classes on .NET 10.
🚀 Example
Original Record
[Reflexor]
public record User(string UserName, int Age);
Generated Proxy
public partial struct UserProxy
{
public string UserName { get; set; }
public int Age { get; set; }
}
// Property implementations omitted for brevity
var user = new User("John_Doe", 29);
// user.UserName = "Jane_Doe"; error CS8852
var proxy = new UserProxy(user);
proxy.UserName = "Jane_Doe";
Console.WriteLine(user.UserName);
// "Jane_Doe"
🧩 Usage
1. Install the NuGet Package
dotnet add package Reflexor
Reflexor targets .NET 10 consumers. The source generator itself is packaged as a netstandard2.0 analyzer.
2. Annotate Your Types
Just add a [Reflexor] attribute to any immutable record or class.
[Reflexor]
public record Order(int Id, DateTime Date, string Customer);
That's it — Reflexor will generate a proxy type automatically!
🛡️ Why Use Proxies?
Working with immutable models is great for safety, but tricky for things like:
- UI data binding (e.g., Blazor, WPF, MAUI)
- Form editing and validation
- Intermediate "draft" state management
- Patch or delta generation
Reflexor bridges this gap by creating mutable counterparts on the fly.
👷♂️ Contributing
Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request.
📄 License
This project is licensed under the MIT License. See the LICENSE file for details.
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.