Skip to content

Objo Plugin SDK 1.2.0

Latest

Choose a tag to compare

@gkjpettet gkjpettet released this 06 Oct 05:53

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 or new-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.