Class ServiceWithSetup<TServices, TOptions>
[InternalApi_DoNotUse_MayChangeWithoutNotice("Still WIP as of v22")]
public abstract class ServiceWithSetup<TServices, TOptions> : ServiceBase, IHasLog, IHasOptions<TOptions>, IServiceWithSetup<TOptions> where TServices : IDependencies where TOptions : class
Type Parameters
TServicesTOptions
- Inheritance
-
objectServiceWithSetup<TServices, TOptions>
- Implements
-
IHasOptions<TOptions>IServiceWithSetup<TOptions>
- Inherited Members
Constructors
ServiceWithSetup(TServices, string, NoParamOrder, object[]?)
Constructor for normal case, with services
protected ServiceWithSetup(TServices services, string logName, NoParamOrder npo = default, object[]? connect = null)
Parameters
servicesTServicesDependencies to auto-attach to property
ServiceslogNamestringThe new objects name in the logs
npoNoParamOrderconnectobject[]Optional array of services to connect the logs to.
Fields
Services
The services which came through the TDependencies services in the constructor.
protected readonly TServices Services
Field Value
- TServices
Properties
MyOptions
The options instance for this service, read-only.
public virtual TOptions MyOptions { get; }
Property Value
- TOptions
Remarks
- Explicitly with a short name "MyOptions" so that the classes can have a subclass called "Options" without name conflicts.
- Will usually default to new/standard options of type
TOptions.
Methods
GetDefaultOptions()
Method to generate new / default options. This should usually not be called, but it might; so if your service can work without valid options (or accesses options before setup), this would trigger.
This could also be triggered, if the service was created without the correct Generator. Note that it's always an option to just throw an exception.
You must override this to provide your own default options.
protected virtual TOptions GetDefaultOptions()
Returns
- TOptions
Exceptions
- ServiceOptionsRequiredException
Setup(TOptions)
public virtual void Setup(TOptions options)
Parameters
optionsTOptions