public ClusterConfigurator Assemblies(params Assembly[] assemblies) { Requires.NotNull(assemblies, nameof(assemblies)); if (assemblies.Length == 0) { throw new ArgumentException("Assemblies length should be greater than 0", nameof(assemblies)); } foreach (var assembly in assemblies) { if (this.assemblies.Contains(assembly)) { throw new ArgumentException($"Assembly {assembly.FullName} has been already registered"); } this.assemblies.Add(assembly); } foreach (var type in assemblies.SelectMany(x => x.ActorTypes())) { var mapping = ActorInterfaceMapping.Of(type); if (!interfaces.Add(mapping)) { throw new ArgumentException($"Actor type '{mapping.Name}' has been already registered"); } } return(this); }
internal ClientConfigurator ActorTypes(params string[] types) { Requires.NotNull(types, nameof(types)); if (types.Length == 0) { throw new ArgumentException("types array is empty", nameof(types)); } foreach (var type in types) { if (!interfaces.Add(ActorInterfaceMapping.Of(type))) { throw new ArgumentException($"Actor type '{type}' has been already registered"); } } return(this); }