public static void Register(object instance, RegisteringValidations validation) { var targetType = instance.GetType(); var interfaces = targetType.GetInterfaces(). Where(it => it.IsDefined <GlobalServiceAttribute>()). ToArray() !; if (validation == RegisteringValidations.Strict) { var assigned = interfaces. Where(it => GetInstance(it) != null). ToArray(); if (assigned.Length >= 1) { throw new InvalidOperationException( $"GlobalService: Service already assigned: Types=[{string.Join(",", assigned.Select(t => t.FullName))}]"); } } foreach (var it in interfaces) { SetInstance(it, instance, validation == RegisteringValidations.UnsafePartial); } }
public static void Register( object instance, RegisteringValidations validation = RegisteringValidations.Strict) => InternalGlobalService.Register(instance, validation);