Class InMemorySchemaRegistry
- Namespace
- AnyProtocol
- Assembly
- AnyProtocol.dll
Provides a deterministic in-memory registry suitable for composition and testing.
public sealed class InMemorySchemaRegistry : ISchemaRegistry
- Inheritance
-
InMemorySchemaRegistry
- Implements
- Inherited Members
Constructors
InMemorySchemaRegistry(IEnumerable<IMessageSchemaCompatibilityChecker>?, TimeProvider?)
Creates a registry with the built-in JSON Schema checker.
public InMemorySchemaRegistry(IEnumerable<IMessageSchemaCompatibilityChecker>? checkers = null, TimeProvider? timeProvider = null)
Parameters
checkersIEnumerable<IMessageSchemaCompatibilityChecker>timeProviderTimeProvider
Methods
CheckCompatibilityAsync(string, string, string, SchemaCompatibilityMode, CancellationToken)
Checks a candidate without changing registry state.
public ValueTask<SchemaCompatibilityResult> CheckCompatibilityAsync(string subject, string format, string candidateDefinition, SchemaCompatibilityMode compatibility = SchemaCompatibilityMode.Backward, CancellationToken cancellationToken = default)
Parameters
subjectstringformatstringcandidateDefinitionstringcompatibilitySchemaCompatibilityModecancellationTokenCancellationToken
Returns
GetAsync(string, int, CancellationToken)
Gets one exact subject version, or null.
public ValueTask<MessageSchema?> GetAsync(string subject, int version, CancellationToken cancellationToken = default)
Parameters
subjectstringversionintcancellationTokenCancellationToken
Returns
GetLatestAsync(string, CancellationToken)
Gets the latest registered version, or null.
public ValueTask<MessageSchema?> GetLatestAsync(string subject, CancellationToken cancellationToken = default)
Parameters
subjectstringcancellationTokenCancellationToken
Returns
RegisterAsync(string, string, string, SchemaCompatibilityMode, CancellationToken)
Registers a compatible version, returning the existing version for an identical definition.
public ValueTask<MessageSchema> RegisterAsync(string subject, string format, string definition, SchemaCompatibilityMode compatibility = SchemaCompatibilityMode.Backward, CancellationToken cancellationToken = default)
Parameters
subjectstringformatstringdefinitionstringcompatibilitySchemaCompatibilityModecancellationTokenCancellationToken