Class BowireExtensionAttribute
- Namespace
- Kuestenlogik.Bowire.Semantics.Extensions
- Assembly
- Kuestenlogik.Bowire.dll
Marks a class as a Bowire extension — a viewer / editor (IBowireUiExtension) or a semantic-kind detector (IBowireFieldDetector) that the workbench should auto-discover at startup via assembly scan. The attribute itself carries no metadata; the implementation class supplies id / capabilities / resource names through the implemented contract interface.
[AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
public sealed class BowireExtensionAttribute : Attribute
- Inheritance
-
BowireExtensionAttribute
- Inherited Members
Remarks
Mirrors the existing IBowireProtocol discovery pattern: a host
scans every loaded Kuestenlogik.Bowire* assembly, instantiates
every type tagged with BowireExtensionAttribute that
implements one of the supported extension interfaces, and registers it
with the framework. Plugin authors don't need to wire anything into
DI — dropping the package next to the host is enough.
A single nupkg can ship multiple [BowireExtension] types when
they belong together (e.g. a MIL-symbol package shipping both a
detector and a viewer extension). Each type is independently
instantiated and registered.
Detector auto-discovery is additive to the manual
services.AddSingleton<IBowireFieldDetector, ...>() path:
hosts that hand-register a detector continue to work, and both
paths land in the same
IServiceCollection
enumeration. Duplicate instances of the same detector type are
suppressed by the registry sweep — a built-in that carries the
marker AND is registered explicitly in the DI wiring does not fire
twice.
Constructors
BowireExtensionAttribute()
public BowireExtensionAttribute()