/// <summary> /// Initializes a counter publisher. /// </summary> /// <param name="counterSamplePublisher">The counter publisher.</param> /// <param name="counterSet">An object providing counter instance members.</param> /// <param name="memberList">The member list.</param> /// <param name="counterSetName">Name of the counter set.</param> private static void InitializeCounterPublisher(CounterSamplePublisher counterSamplePublisher, object counterSet, IEnumerable<MemberInfo> memberList, string counterSetName) { foreach (var member in memberList) { PublishCounterAttribute attribute = GetCounterAttribute(member); if (attribute != null) { if (!IsCounterType(member)) { if (log.IsWarnEnabled) { log.WarnFormat("PublishCounterAttribute applied to member '{0}' which is not a ICounter type.", member.Name); } } else { ICounter counter = (ICounter)GetMemberValue(counterSet, member); if (counter == null) { if (log.IsWarnEnabled) { log.WarnFormat("Counter for member {0} has not been initialized.", member.Name); } } else if (counter.CounterType != CounterType.Undefined) { string name = GetCounterName(member, attribute, counterSetName); counterSamplePublisher.AddCounter(counter, name); if (log.IsDebugEnabled) { log.DebugFormat("Added counter '{0}' to counter publisher.", name); } } } } else { CounterSetAttribute attribute2 = GetCounterSetAttribute(member); if (attribute2 != null) { if (GetMemberValue(counterSet, member) == null) { if (log.IsWarnEnabled) { log.WarnFormat("CounterSet for member {0} has not been initialized.", member.Name); } } else { InitializeCounterPublisher(counterSamplePublisher, counterSet, GetCounterSetName(member, attribute2, counterSetName)); } } } } }
/// <summary> /// Initializes a counter publisher. /// </summary> /// <param name="counterSamplePublisher">The counter publisher.</param> /// <param name="counterContainerType">Type of the counter container.</param> /// <param name="counterSetName">Name of the counter set.</param> public static void InitializeCounterPublisher(CounterSamplePublisher counterSamplePublisher, Type counterContainerType, string counterSetName) { MemberInfo[] infoArray = counterContainerType.GetMembers(BindingFlags.GetProperty | BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Static); InitializeCounterPublisher(counterSamplePublisher, null, infoArray, counterSetName); }
/// <summary> /// Initializes a counter publisher. /// </summary> /// <param name="counterSamplePublisher">The counter publisher.</param> /// <param name="counterSet">An object providing counter instance members.</param> /// <param name="counterSetName">The name of the counter set.</param> public static void InitializeCounterPublisher(CounterSamplePublisher counterSamplePublisher, object counterSet, string counterSetName) { Type type = counterSet.GetType(); MemberInfo[] infoArray = type.GetMembers(BindingFlags.GetProperty | BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance); InitializeCounterPublisher(counterSamplePublisher, counterSet, infoArray, counterSetName); }
/// <summary> /// Initializes a counter publisher. /// </summary> /// <param name="counterSamplePublisher">The counter publisher.</param> /// <param name="counterContainer">An object providing counter instance members.</param> public static void InitializeCounterPublisher(CounterSamplePublisher counterSamplePublisher, object counterContainer) { InitializeCounterPublisher(counterSamplePublisher, counterContainer, string.Empty); }