Generated .NET object model
Documentation status: architecture — see Maturity and evidence.
The .NET binding is generated from the Runtime publication model. Application code should work with generated managed types rather than manually constructing ABI descriptors or native entry-point names.
The generator preserves the semantic shape of a published Runtime surface:
- published Runtime types become generated managed types;
- published constructors become managed construction/factory paths;
- published methods become managed methods;
- readable and writable properties keep normal property syntax;
- enumerations remain typed values;
- published object/interface values are represented through managed wrappers over Runtime references;
- arrays retain their element type instead of becoming untyped native buffers.
Runtime publication metadata
|
v
stable ABI identity
|
v
.NET projection
types / methods / properties
|
v
IClientRuntime
Generated names versus Runtime identity
Managed names are a language projection. Invocation identity is independent from those names and is established before C# projection through stable TypeId and MethodId values.
This separation matters because the same logical operation can be reached through a local ABI adapter or serialized over RPC without changing the public generated object model.
Cross-package dependencies
The generator records dependencies between published packages. A generated project can therefore reference generated dependency projects rather than duplicating their types into each output assembly.
This preserves type identity across generated assemblies and avoids producing multiple managed definitions for the same Runtime type.
Publication filtering
Not every implementation type or member is automatically exported. The publication layer filters inaccessible types and unsupported shapes before a target-language binding is emitted. Examples include non-public members, unsupported method-reference forms, non-flat records in unsupported positions, and other types that cannot be represented safely by the ABI.
The generated SDK is therefore a projection of the published Runtime contract, not a reflection dump of the implementation.
Status
The generator sources confirm the publication model, dependency graph, stable invocation identity and target-language projection strategy. Exact generated class names and convenience APIs are release-dependent, so this page documents the binding architecture rather than a frozen generated package surface.