Interface IProtoClientInitializer

Namespace
ProtoTest.Core
Assembly
ProtoTest.Core.dll

Defines a contract for initializing and registering client instances (e.g., HttpClient, GrpcChannel) into the active ProtoExecutionContext.

public interface IProtoClientInitializer
Extension Methods

Properties

ClientType

Gets the type under which the client is registered in the execution context.

Type ClientType { get; }

Property Value

Type

Name

Gets the registration name for this client (e.g., "Default", "OrderService"). Initializers with the same Protocol, client type and name form an ordered provider chain.

string Name { get; }

Property Value

string

Protocol

Gets the protocol this initializer serves (for example "Rest"), or null for a host-level client. Protocols keep their own provider chains, and a provider registers its client under Protocol:Name (see ScopedName(string?, string)), so two protocols can own the same client name without shadowing each other.

string? Protocol { get; }

Property Value

string

Methods

TryInitializeAsync(ProtoExecutionContext)

Attempts to build and register the client into the specified test execution context. Returns false without changing the context when this initializer cannot provide the client for the current configuration.

The test lifecycle carries the caller's cancellation token, or the runner's own where its adapter has one; an initializer reads it from CancellationToken and passes it to its own I/O. MSTest's extension point exposes no token, so that adapter starts with None; a run-scoped hook is the cancellable extension point.

Task<bool> TryInitializeAsync(ProtoExecutionContext context)

Parameters

context ProtoExecutionContext

Returns

Task<bool>