Skip to content

main · v2.1 (preview)

Terminology

Users and maintainers · Reference · CurrentMarkdownAgent index

Status: Current. Reference for users and maintainers.

Use these names consistently when discussing Immersive, in prose, code comments, diagrams and pull requests. Exact identifiers keep their declared spelling. The linked pages own the definitions.

TermDefinition and usage
Weave, weavingThe rewrite of a compiled assembly by Immersive, as described in How weaving works. Say that an assembly is woven; do not say patched or instrumented.
ImmerseThe historical verb for the same operation, kept in the command immerse, in ImmersiveTask and in the message <immerse> immersed in <target>. Prefer weave in new prose.
Referenced assemblyThe library whose classes and methods are substituted. It is unchanged by the weave.
Immerse assemblyThe assembly that declares the substitutes and carries the attributes. Not immersive assembly, except in the message No immersive assembly found.
Target assemblyThe assembly the weaver rewrites: the project that uses the referenced assembly and declares the marker.
MarkerThe top-level class ImmersiveMarker in the target assembly, whose base type names the immerse assembly. The base class in the immerse assembly is conventionally called Marker.
Substitutable classA class of the referenced assembly that a substitute class replaces. The weaver’s Substitutables are the classes of the target that it visits; say substitutable class for the former to keep the two apart.
Substitute classA class in the immerse assembly with SubstituteClassAttribute.
Base substitutionA substitute class that derives from the class it substitutes, declared with [SubstituteClass] without an argument.
Explicit substitutionA substitute class that names the class it substitutes with [SubstituteClass(typeof(...))].
Substitute methodA method in the immerse assembly with SubstituteMethodAttribute.
TermDefinition and usage
Windows FormsMicrosoft’s name for System.Windows.Forms. The package and project are named Allors.Immersive.Winforms; say the Winforms library only for them.
AvaloniaThe cross-platform UI framework; Allors.Immersive.Avalonia is the Avalonia library.
SessionThe process-wide Session.Singleton that records handles and raises testing events.
HandleThe session’s record of one substitute instance: its name, its parent and the substitute itself.
TesterA class that finds a handle by name and exposes the substitute as Target, with the actions a test performs on it.
Testing eventA TestingWinformsEvent or TestingAvaloniaEvent raised by a substitute, with its kind, so that a test can respond to a form, dialog or message box being shown and to changes.