public static ClusterOptions AddClusterService <TService, TImplementation>( this ClusterOptions clusterOptions, Func <IServiceProvider, TImplementation> factory) where TImplementation : notnull, TService => clusterOptions.AddService <TService, TImplementation>(factory, ClusterServiceLifetime.Cluster);
public static ClusterOptions AddClusterService <TService, TImplementation>( this ClusterOptions clusterOptions, TImplementation singleton) where TImplementation : notnull, TService => clusterOptions.AddService <TService, TImplementation>(_ => singleton, ClusterServiceLifetime.Cluster);
public static ClusterOptions AddClusterService <TService, TImplementation>( this ClusterOptions clusterOptions) where TImplementation : TService => clusterOptions.AddService <TService, TImplementation>(ClusterServiceLifetime.Cluster);
public static ClusterOptions AddClusterService <T>( this ClusterOptions clusterOptions, T singleton) where T : notnull => clusterOptions.AddService <T, T>(_ => singleton, ClusterServiceLifetime.Cluster);