计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
dotnet-inspect【效率与协作】Query .NET APIs across NuGet packages, platform libraries, and local files. Search for types, list API surfaces, compare and diff versions, find extension methods and implementors. Use whenever you need to answer questions about .NET library contents.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Query .NET library APIs — the same commands work across NuGet packages, platform libraries (System., Microsoft.AspNetCore.), and local .dll/.nupkg files.
diff --package Foo@old..new first, then member --onelinemember Type --package Foo --oneline (token-efficient)member Type --package Foo -m Method (default shows full signatures + docs)member Type --package Foo -m Method -v:d (adds Source, Lowered C#, IL)member 'Type<T>' --package Foo -m .ctor (use <T> not <>)member Type --package Foo --select (shows Name:N indices)type discovers types (terse), find searches by patterntype for discovery, member for detailed inspection (docs on)diff classifies breaking/additive changesdiff the old..new version, then member --oneline to see the new APIextensions finds extension methods/propertiesimplements finds concrete typesdepends walks the type hierarchy upwardpackage and library inspect metadatademo runs curated showcase queriesUse --oneline as the default for scanning — it works on type, member, find, diff, and implements:
dnx dotnet-inspect -y -- member JsonSerializer --package System.Text.Json --oneline # scan members
dnx dotnet-inspect -y -- type --package System.Text.Json --oneline # scan types
dnx dotnet-inspect -y -- diff --package System.CommandLine@2.0.0-beta4.22272.1..2.0.3 --oneline # triage changes
Use --shape to understand a type's hierarchy and surface at a glance:
dnx dotnet-inspect -y -- type 'HashSet<T>' --platform System.Collections --shape
Use diff first when fixing broken code — --oneline for triage, then full detail on specific types:
dnx dotnet-inspect -y -- diff --package System.CommandLine@2.0.0-beta4.22272.1..2.0.3 --oneline # what changed?
dnx dotnet-inspect -y -- diff -t Command --package System.CommandLine@2.0.0-beta4.22272.1..2.0.3 # detail on Command
dnx dotnet-inspect -y -- member Command --package System.CommandLine@2.0.3 --oneline # new API surface
Search commands (find, extensions, implements, depends) use scope flags:
--platform — all platform frameworks--extensions — curated Microsoft.Extensions.* packages--aspnetcore — curated Microsoft.AspNetCore.* packages--package Foo — specific NuGet package (combinable with scope flags)type, member, library, diff accept --platform <name> as a string for a specific platform library.
| Command | Purpose |
|---|---|
type | Discover types — terse output, no docs, use --shape for hierarchy |
member | Inspect members — docs on by default, supports dotted syntax (-m Type.Member) |
find | Search for types by glob pattern across any scope |
diff | Compare API surfaces between versions — breaking/additive classification |
extensions | Find extension methods/properties for a type |
implements | Find types implementing an interface or extending a base class |
depends | Walk the type dependency hierarchy upward (interfaces, base classes) |
package | Package metadata, files, versions, dependencies, search for NuGet discovery |
library | Library metadata, symbols, references, dependencies |
demo | Run curated showcase queries — list, invoke, or feeling-lucky |
Do not pipe output through head, tail, or Select-Object. The tool has built-in line limiting that preserves headers and formatting:
dnx dotnet-inspect -y -- member JsonSerializer --package System.Text.Json --oneline -10 # first 10 lines
dnx dotnet-inspect -y -- find "*Logger*" -n 5 # first 5 lines
dnx dotnet-inspect -y -- member JsonSerializer --package System.Text.Json -v:q -s Methods # select specific section
-n N or -N — line limit, like head. Keeps headers, truncates cleanly.-s Section — show only a specific section (glob-capable). Use -s alone to list available sections.-v:q — quiet verbosity for compact summary output.'Option<T>', 'IEnumerable<T>'<T> not <> for generic types — "Option<>" resolves to the abstract base, 'Option<T>' resolves to the concrete generic with constructorstype uses -t for type filtering, member uses -m for member filtering (not --filter)member: -m JsonSerializer.Deserialize..: --package System.Text.Json@9.0.0..10.0.0params and default values from metadataRootCommand inherits Add() and SetAction() from Command)Use dnx (like npx). Always use -y and -- to prevent interactive prompts:
dnx dotnet-inspect -y -- <command>
For comprehensive syntax, edge cases, and the flag compatibility matrix:
dnx dotnet-inspect -y -- llmstxt