Table of Contents

Class BuilderBase<TEndpoint>

Namespace
TypedRest.CodeGeneration.CSharp.Endpoints
Assembly
TypedRest.CodeGeneration.CSharp.dll

Common base class for IBuilder<TEndpoint>s.

public abstract class BuilderBase<TEndpoint> : IBuilder<TEndpoint>, IBuilder where TEndpoint : IEndpoint

Type Parameters

TEndpoint

The type of IEndpoint to generate code for.

Inheritance
object
BuilderBase<TEndpoint>
Implements
IBuilder<TEndpoint>
Derived

Methods

AddInterfaceAdapters(CSharpClass, CSharpIdentifier)

Adds explicit interface implementations to a generated class for members that it inherits with concrete endpoint types while interfaceType declares them with the corresponding interface types (e.g. an indexer returning IFooEndpoint rather than FooEndpoint).

protected virtual void AddInterfaceAdapters(CSharpClass implementation, CSharpIdentifier interfaceType)

Parameters

implementation CSharpClass

The generated class to add the members to.

interfaceType CSharpIdentifier

The endpoint interface the generated interface derives from.

Build(string, IEndpoint, IEndpointGenerator)

public (CSharpProperty property, IEnumerable<ICSharpType> types) Build(string key, IEndpoint endpoint, IEndpointGenerator generator)

Parameters

key string
endpoint IEndpoint
generator IEndpointGenerator

Returns

(CSharpProperty property, IEnumerable<ICSharpType> types)

Build(string, TEndpoint, IEndpointGenerator)

public (CSharpProperty property, IEnumerable<ICSharpType> types) Build(string key, TEndpoint endpoint, IEndpointGenerator generator)

Parameters

key string
endpoint TEndpoint
generator IEndpointGenerator

Returns

(CSharpProperty property, IEnumerable<ICSharpType> types)

GetAdditional(string, TEndpoint, IEndpointGenerator)

protected virtual (IEnumerable<ICSharpType> types, IEnumerable<CSharpIdentifier> typeArguments) GetAdditional(string key, TEndpoint endpoint, IEndpointGenerator generator)

Parameters

key string
endpoint TEndpoint
generator IEndpointGenerator

Returns

(IEnumerable<ICSharpType> types, IEnumerable<CSharpIdentifier> typeArguments)

GetImplementationType(TEndpoint, INamingStrategy)

protected abstract CSharpIdentifier GetImplementationType(TEndpoint endpoint, INamingStrategy naming)

Parameters

endpoint TEndpoint
naming INamingStrategy

Returns

CSharpIdentifier

GetInterfaceType(CSharpIdentifier, bool)

protected virtual CSharpIdentifier GetInterfaceType(CSharpIdentifier implementationType, bool withInterfaces)

Parameters

implementationType CSharpIdentifier
withInterfaces bool

Returns

CSharpIdentifier

GetParameters(TEndpoint, IEndpointGenerator)

protected virtual IEnumerable<CSharpParameter> GetParameters(TEndpoint endpoint, IEndpointGenerator generator)

Parameters

endpoint TEndpoint
generator IEndpointGenerator

Returns

IEnumerable<CSharpParameter>