Repository navigation
Exported classes now include inherited members
- An exported class automatically exports the public members it inherits from its .NET base classes, following C# member lookup through the exported type. Keep shared plumbing in ordinary non-exported base classes and mark only the leaf classes
[ObjoExport]; methods, properties, static methods and typed events from the bases become callable on the leaf. An override ornew-hiding declaration replaces the inherited member, and[ObjoIgnore]on a hiding declaration removes a single inherited member. - Abstract exported classes are supported as shared types: they export no constructors, and their members flow onto exported derived classes.
- An inherited member that cannot be mapped to the Objo contract is skipped with a warning instead of failing the pack; members declared on an exported class keep the strict error.
- An inherited
Dispose()satisfies the disposal contract, and inherited[ObjoEvent]events deliver normally.
Documentation in the porting guide covers the full inheritance model, and the recipes page adds a "strings across the native binary" section on P/Invoke marshalling (CharSet.Unicode, LPUTF8Str, and LibraryImport with StringMarshalling.Utf8).
The SDK contract remains 1.0.0 and works with shipped Objo Studio; rebuilding an existing package with this SDK is enough to pick up inherited members.