Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
 public static void Register(
     object instance, RegisteringValidations validation = RegisteringValidations.Strict) =>
 InternalGlobalService.Register(instance, validation);