Runtime & concurrency
Reveal answer and reasoning
State whether the matcher needs an exact closed construction, a generic definition, or an implemented generic capability. Inspect actual Type identities and arguments, and when searching interfaces compare each relevant interface's generic definition deliberately. Keep arity and constraints explicit if construction is allowed. A name such as IRepository or a display string containing angle brackets is not a reliable representation of those requirements or of assembly identity.
Test multiple constructions of one definition, an unrelated generic with similar names, a nongeneric type, and an incompatible argument or constraint. Keep known registration separate from unrestricted MakeGenericType where a bounded allowed set fits. For trimmed or NativeAOT deployment, publish and execute the supported construction set before claiming compatibility; desktop metadata success alone does not establish code availability. The wrong design assumes an open Type automatically matches all desired implementations or that parsing Name is equivalent to examining the runtime's actual metadata relationships.
What a strong answer covers
- Choose exact construction versus definition versus capability.
- Inspect real interfaces and positional arguments.
- Test construction constraints and deployment availability.
Common pitfall
Using an open generic name as a universal assignability wildcard.
Follow-up questions
- How would variance affect assignability after matching a definition?
- What would explicit registration simplify?
Self-review
Choose what to revisit. These marks are your own assessment and are separate from lesson completion.