示例#1
0
        public void EmitCurrentCallInfo <TCallingInstance>(TCallingInstance instance,
                                                           [CallerMemberName] string memberName = "")
        {
            IList <IComponentRegistration> components = _monitoring.GetComponents(instance, memberName);

            if (_onActivityEmit == null)
            {
                return;
            }

            for (int index = 0; index < components.Count; index++)
            {
                IComponentRegistration   component   = components[index];
                IApplicationRegistration application = component.Application;
                ISystemRegistration      system      = application.SystemRegistration;
                string eventName = component.GetEventName(memberName);
                IList <Tuple <string, object> > parameters = component.GetObservedParameterValues(instance);

                _onActivityEmit(
                    system.Name,
                    application.Name,
                    component.Name,
                    (string.IsNullOrEmpty(eventName) ? memberName : eventName),
                    parameters);
            }
        }
        public void AddSystem(ISystemRegistration system)
        {
            if ((system == null) || (string.IsNullOrEmpty(system.Name)))
            {
                throw new ArgumentException("'system' instance and 'System Name' is required");
            }

            if (_registrationContainers.ContainsKey(system.Name))
            {
                _registrationContainers.Remove(system.Name);
            }

            _registrationContainers.Add(system.Name, system);
        }
示例#3
0
 public void RegisterSystem(ISystemRegistration systemRegistration)
 {
     _monitoring.AddSystem(systemRegistration);
 }