Skip to content

SeeminglyScience/ClassExplorer

Repository files navigation

ClassExplorer

Access non-public types and type members as if they were public.

Build Status PowerShell Gallery Version (including pre-releases) GitHub

ClassExplorer is a PowerShell module that enables quickly searching the AppDomain for classes and members.

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to seeminglyscience@gmail.com.

Features

  • Quickly find specific classes, methods, properties, etc
  • Use builtin parameters that utilize compiled filters for performance
  • Create a fully custom search using a ScriptBlock
  • Supported for PowerShell Core (tested in Windows and Linux)
  • Type name completion on any Type parameters
  • All string parameters accept wildcards (or regex with a switch parameter)

Documentation

Check out our documentation for information about how to use this project.

Installation

Gallery

Install-Module ClassExplorer -Scope CurrentUser

PowerShellGet v3

Install-PSResource ClassExplorer

Source

git clone 'https://github.com/SeeminglyScience/ClassExplorer.git'
Set-Location ./ClassExplorer
./build.ps1

Usage

Find an accessible version of an abstract type

Find-Type RunspaceConnectionInfo

Example-1-Results-1

Find-Type -InheritsType System.Management.Automation.Runspaces.RunspaceConnectionInfo

Example-1-Results-2

Find-Type -InheritsType System.Management.Automation.Runspaces.RunspaceConnectionInfo |
    Find-Type { $_ | Find-Member -MemberType Constructor }

Example-1-Results-3

[Management.Automation.Runspaces.NamedPipeConnectionInfo] |
    Find-Member -MemberType Constructor |
    Get-Parameter

Example-1-Results-4

# Or, alternatively this will return all constructors, properties, methods, etc that return any
# implementation of RunspaceConnectionInfo.
Find-Member -ReturnType System.Management.Automation.Runspaces.RunspaceConnectionInfo

Example-1-Results-5

Find something to do with a type

using namespace System.Management.Automation.Runspaces

Find-Member -ParameterType RunspaceConnectionInfo -ReturnType RunspacePool

Example-2-Results

Use type signature queries

See about_Type_Signatures.help.md

Find-Member -ReturnType { [ReadOnlySpan[byte]] } -ParameterType { [ReadOnlySpan[any]] }

Example-3-Results

Get real specific

Find-Member -MemberType Method -Instance -ParameterType string -ReturnType bool -ParameterCount 4.. |
    Find-Member -ParameterType { [anyref] [any] } |
    Find-Member -Not -RegularExpression 'Should(Continue|Process)'

Example-4-Results

Contributions Welcome!

We would love to incorporate community contributions into this project. If you would like to contribute code, documentation, tests, or bug reports, please read our Contribution Guide to learn more.

About

Discover the API you need with ease

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published