Skip to content
Document DB v12 - Improved Interceptors with Soft Delete Integration, AI protections, & Admin UI with Aspire Integration!How!?

Configuration

If you’re using CommunityToolkit.Mvvm with source-generated [ObservableProperty] partial properties, Reflector works alongside it:

  1. Set the language version to preview in your project file:

    <PropertyGroup>
    <LangVersion>preview</LangVersion>
    </PropertyGroup>
  2. Apply both attributes to your ViewModel:

    [Reflector]
    public partial class MyViewModel : ObservableObject
    {
    [ObservableProperty]
    public partial string MyProperty { get; set; }
    }
Property Default Description
ShinyReflectorUseInternalAccessors false Generate internal accessors instead of public
ShinyReflectorGenerateAssemblyInfo true Enable or disable AssemblyInfo class generation
ShinyReflectorAssemblyInfoClassName AssemblyInfo Class name for the generated constants
ShinyReflectorAssemblyInfoNamespace Root namespace Namespace for the generated AssemblyInfo class
<PropertyGroup>
<ShinyReflectorUseInternalAccessors>true</ShinyReflectorUseInternalAccessors>
<ShinyReflectorGenerateAssemblyInfo>true</ShinyReflectorGenerateAssemblyInfo>
<ShinyReflectorAssemblyInfoClassName>MyAssemblyInfo</ShinyReflectorAssemblyInfoClassName>
<ShinyReflectorAssemblyInfoNamespace>My.Namespace</ShinyReflectorAssemblyInfoNamespace>
</PropertyGroup>
claude plugin marketplace add shinyorg/skills
claude plugin install shiny-extensions@shiny
copilot plugin marketplace add https://github.com/shinyorg/skills
copilot plugin install shiny-extensions@shiny
View shiny-extensions Plugin