Shiny.Reflector
                             
                            
                                1.0.0-alpha-0006
                            
                        
                            
                                
                                
                                    Prefix Reserved
                                
                            
                    
        
        
                                This is a prerelease version of Shiny.Reflector.
                            
    
    
        
        
                                There is a newer version of this package available.
                                
See the version list below for details.
                    See the version list below for details.
dotnet add package Shiny.Reflector --version 1.0.0-alpha-0006
NuGet\Install-Package Shiny.Reflector -Version 1.0.0-alpha-0006
        
        
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="Shiny.Reflector" Version="1.0.0-alpha-0006" />
        
        
For projects that support PackageReference, copy this XML node into the project file to reference the package.
                    
    
    <PackageVersion Include="Shiny.Reflector" Version="1.0.0-alpha-0006" />
<PackageReference Include="Shiny.Reflector" />
        
        
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
                    
    
    paket add Shiny.Reflector --version 1.0.0-alpha-0006
        
        
 The NuGet Team does not provide support for this client. Please contact its maintainers for support.
                    
    
    #r "nuget: Shiny.Reflector, 1.0.0-alpha-0006"
        
        
#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.
                    
    
    #:package Shiny.Reflector@1.0.0-alpha-0006
        
        
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
                    
    
    #addin nuget:?package=Shiny.Reflector&version=1.0.0-alpha-0006&prerelease
#tool nuget:?package=Shiny.Reflector&version=1.0.0-alpha-0006&prerelease
        
        
 The NuGet Team does not provide support for this client. Please contact its maintainers for support.
                    
    
    Shiny Reflector
Reflection without the actual... reflection. AOT compliant!
TODO
- What attributes on properties and/or class
 
Usage
[Shiny.Reflector.ReflectorAttribute]
public class MyClass
{
    public int MyProperty { get; set; }
    public string Message { get; set;}
}
Just that attribute allows you to do this:
var myClass = new MySampleClass
{
    Name = "Hello World",
    Age = null
};
// NOTE: the use of GetReflector - a reflector class is generated for each class marked with the ReflectorAttribute
var reflector = myClass.GetReflector();
foreach (var prop in reflector.Properties) 
{
    var objValue = reflector[prop.Name];
    Console.WriteLine($"Property: {prop.Name} ({prop.Type}) - Current Value: {objValue}");
}
// generics for type casting
var name = reflector.GetValue<string>("Name");
Console.WriteLine("Reflector Name: " + name);
// indexers for loose typing
Console.WriteLine("Reflector Value: " + reflector["age"]);
// set with generics
reflector.SetValue("Age", 99);
// or just an object on the indexer
reflector["name"] = "Something Else";
Console.WriteLine("Reflector Name Value: " + reflector["NaMe"]);
Console.WriteLine("Reflector Age Value: " + reflector["NaMe"]);
Put ReflectionExtensions (the thing that let's you get the reflector) in a separate assembly
<PropertyGroup>
    <ShinyReflectorNamespace>MyNamespace</ShinyReflectorNamespace>
    
    OR
    
    <RootNamespace>MyNamespace</RootNamespace>
    
    OTHERWISE
    global namespace (no namespace)
</PropertyGroup>
                                | Product | Versions Compatible and additional computed target framework versions. | 
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. | 
        
        Compatible target framework(s)
    
    
        
        Included target framework(s) (in package)
    
    Learn more about Target Frameworks and .NET Standard.
- 
                                                    
net9.0
- No dependencies.
 
 
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Shiny.Reflector:
| Package | Downloads | 
|---|---|
| 
                                                        
                                                            Shiny.Extensions.Stores
                                                        
                                                            
                                                         Store anything in a key/value store - Abstractions for iOS, Android and Windows preferences/secure storage  | 
                                                    
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | 
|---|---|---|
| 1.7.0 | 257 | 9/14/2025 | 
| 1.7.0-beta-0002 | 153 | 9/21/2025 | 
| 1.7.0-beta-0001 | 199 | 9/14/2025 | 
| 1.6.1 | 531 | 7/7/2025 | 
| 1.6.0 | 175 | 7/3/2025 | 
| 1.6.0-beta-0015 | 242 | 8/7/2025 | 
| 1.6.0-beta-0014 | 161 | 7/15/2025 | 
| 1.6.0-beta-0013 | 156 | 7/15/2025 | 
| 1.6.0-beta-0012 | 163 | 7/15/2025 | 
| 1.6.0-beta-0011 | 146 | 7/7/2025 | 
| 1.6.0-beta-0010 | 157 | 7/3/2025 | 
| 1.6.0-beta-0009 | 155 | 7/3/2025 | 
| 1.6.0-beta-0006 | 136 | 7/1/2025 | 
| 1.6.0-beta-0005 | 160 | 7/1/2025 | 
| 1.6.0-beta-0004 | 158 | 7/1/2025 | 
| 1.6.0-beta-0003 | 165 | 6/30/2025 | 
| 1.5.1 | 889 | 6/30/2025 | 
| 1.5.0 | 160 | 6/30/2025 | 
| 1.4.0 | 169 | 6/30/2025 | 
| 1.4.0-beta-0002 | 163 | 6/30/2025 | 
| 1.4.0-beta-0001 | 157 | 6/30/2025 | 
| 1.4.0-alpha-0002 | 142 | 6/29/2025 | 
| 1.3.0 | 162 | 6/29/2025 | 
| 1.2.0 | 160 | 6/29/2025 | 
| 1.1.0 | 174 | 6/29/2025 | 
| 1.1.0-alpha-0004 | 160 | 6/29/2025 | 
| 1.1.0-alpha-0001 | 161 | 6/29/2025 | 
| 1.0.0 | 168 | 6/29/2025 | 
| 1.0.0-g0d103c2df8 | 117 | 6/28/2025 | 
| 1.0.0-alpha-0013 | 172 | 6/29/2025 | 
| 1.0.0-alpha-0012 | 117 | 6/28/2025 | 
| 1.0.0-alpha-0007 | 96 | 6/27/2025 | 
| 1.0.0-alpha-0006 | 103 | 6/27/2025 | 
| 1.0.0-alpha-0005 | 108 | 6/27/2025 | 
| 1.0.0-alpha-0004 | 154 | 6/27/2025 |