Ansight.Tools.Reflection
0.1.0-pre1
dotnet add package Ansight.Tools.Reflection --version 0.1.0-pre1
NuGet\Install-Package Ansight.Tools.Reflection -Version 0.1.0-pre1
<PackageReference Include="Ansight.Tools.Reflection" Version="0.1.0-pre1" />
<PackageVersion Include="Ansight.Tools.Reflection" Version="0.1.0-pre1" />
<PackageReference Include="Ansight.Tools.Reflection" />
paket add Ansight.Tools.Reflection --version 0.1.0-pre1
#r "nuget: Ansight.Tools.Reflection, 0.1.0-pre1"
#:package Ansight.Tools.Reflection@0.1.0-pre1
#addin nuget:?package=Ansight.Tools.Reflection&version=0.1.0-pre1&prerelease
#tool nuget:?package=Ansight.Tools.Reflection&version=0.1.0-pre1&prerelease
Ansight.Tools.Reflection
Grouped live-object reflection tools for the Ansight .NET SDK.
Registered tools:
reflect.list_rootsreflect.inspect_objectreflect.describe_typereflect.set_member_valuereflect.invoke_method
Usage
using Ansight;
using Ansight.Tools.Reflection;
var session = new DebugSessionViewModel();
var options = Options.CreateBuilder()
.WithReflectionTools(reflection =>
{
reflection.WithDefaultMemberVisibility(ReflectionMemberVisibility.PublicOnly);
reflection.WithAssemblyTraversalMode(ReflectionAssemblyTraversalMode.AllowAll);
reflection.WithNamespaceTraversalMode(ReflectionNamespaceTraversalMode.AllowAll);
reflection.AddRoot(
"session",
session,
new ReflectionRootMetadata("Current Session")
{
Description = "Active session view model",
Hints = ["debug", "session"],
ContainsSensitiveData = true
},
root => root
.AllowWritableMembers("SelectedTab")
.AllowAllWritableMembersOn<DebugSessionViewModel>()
.AllowInvokableMethods("Refresh()")
.AllowAllInvokableMethodsOn<DebugSessionViewModel>());
})
.WithReadWriteToolAccess()
.Build();
Direct object roots use weak references by default. Use AddStrongRoot(...) when the root should be retained for the lifetime of the toolsuite.
Recursive traversal is allow-listed by default. Use WithAssemblyTraversalMode(...) and WithNamespaceTraversalMode(...) to switch either boundary to AllowAll, or keep the default AllowListedOnly mode and add entries with AllowAssembly(...) / AllowNamespacePrefix(...).
Write and invoke operations are explicitly allow-listed per root:
- writable members are matched by relative member path such as
Child.Name - invokable methods are matched by
Method(Type)for root methods orPath#Method(Type)for nested targets AllowAllWritableMembersOn<T>()/AllowAllInvokableMethodsOn<T>()enable all writable members or invokable methods for reachable objects assignable to a given typeAllowAllWritableMembers()/AllowAllInvokableMethods()enable those capabilities for all reachable objects under the root
These tools are intended for local debugging only and may expose or mutate sensitive runtime state.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net9.0 is compatible. net9.0-android was computed. net9.0-android35.0 is compatible. net9.0-browser was computed. net9.0-ios was computed. net9.0-ios18.0 is compatible. net9.0-maccatalyst was computed. net9.0-maccatalyst18.0 is compatible. 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. |
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 |
|---|---|---|
| 0.1.0-pre1 | 25 | 3/31/2026 |