One async result contract
Managed Dialog API
Express a complete native decision dialog without platform-specific application code.
Explore source ↗Capability
A .NET client models titles, messages, icons, custom buttons, defaults, cancellation, input, verification, secondary content, help links, timeouts, and structured results.
- 01
Async managed client
- 02
Custom button identities and roles
- 03
Structured outcome, input, and timeout result
- 04
Logging and exception-oriented variants
How it composes
From intent
to working system.
Describe
Portable options capture message, actions, content, and policy.
Marshal
The managed host transfers validated data to the active native implementation.
Present
The operating system renders a native dialog on its required thread.
Return
One result reports outcome, button, input, checkbox, and timeout state.
Quick start
Adopt this
capability.
Start with the primary module, then add the related packages only when the application needs those layers. Replace VERSION with the current NuGet version.
dotnet add package NativeMessageBox<PackageReference Include="NativeMessageBox" Version="VERSION" /><PackageVersion Include="NativeMessageBox" Version="VERSION" />var result = await NativeMessageBoxClient.ShowAsync( new MessageBoxOptions( message: "Export completed. Open the file?", buttons: new[] { new MessageBoxButton(1, "Open", isDefault: true), new MessageBoxButton(0, "Close", isCancel: true) }, title: "Export"));Modules in this capability
Use one layer.
Compose the rest.
Source of truth
Read the module beside the complete system.
The implementation, samples, issues, and release notes stay in the parent repository so module details remain connected to the product architecture.