internal ServiceModelPerformanceCounters(ServiceHostBase serviceHost, ContractDescription contractDescription, EndpointDispatcher endpointDispatcher)
 {
     this.perfCounterId = endpointDispatcher.PerfCounterId;
     if (PerformanceCounters.Scope == PerformanceCounterScope.All)
     {
         this.operationPerfCounters = new Dictionary <string, OperationPerformanceCountersBase>(contractDescription.Operations.Count);
         this.actionToOperation     = new SortedList <string, string>(contractDescription.Operations.Count);
         foreach (OperationDescription description in contractDescription.Operations)
         {
             OperationPerformanceCountersBase base2;
             if ((description.Messages[0].Action != null) && !this.actionToOperation.Keys.Contains(description.Messages[0].Action))
             {
                 this.actionToOperation.Add(description.Messages[0].Action, description.Name);
             }
             if (!this.operationPerfCounters.TryGetValue(description.Name, out base2))
             {
                 OperationPerformanceCountersBase base3 = PerformanceCountersFactory.CreateOperationCounters(serviceHost.Description.Name, contractDescription.Name, description.Name, endpointDispatcher.PerfCounterBaseId);
                 if ((base3 != null) && base3.Initialized)
                 {
                     this.operationPerfCounters.Add(description.Name, base3);
                 }
                 else
                 {
                     this.initialized = false;
                     return;
                 }
             }
         }
         EndpointPerformanceCountersBase base4 = PerformanceCountersFactory.CreateEndpointCounters(serviceHost.Description.Name, contractDescription.Name, endpointDispatcher.PerfCounterBaseId);
         if ((base4 != null) && base4.Initialized)
         {
             this.endpointPerfCounters = base4;
         }
     }
     if (PerformanceCounters.PerformanceCountersEnabled)
     {
         this.servicePerfCounters = serviceHost.Counters;
     }
     if (PerformanceCounters.MinimalPerformanceCountersEnabled)
     {
         this.defaultPerfCounters = serviceHost.DefaultCounters;
     }
     this.initialized = true;
 }
 internal ServiceModelPerformanceCounters(ServiceHostBase serviceHost, ContractDescription contractDescription, EndpointDispatcher endpointDispatcher)
 {
     this.perfCounterId = endpointDispatcher.PerfCounterId;
     if (PerformanceCounters.Scope == PerformanceCounterScope.All)
     {
         this.operationPerfCounters = new Dictionary<string, OperationPerformanceCountersBase>(contractDescription.Operations.Count);
         this.actionToOperation = new SortedList<string, string>(contractDescription.Operations.Count);
         foreach (OperationDescription description in contractDescription.Operations)
         {
             OperationPerformanceCountersBase base2;
             if ((description.Messages[0].Action != null) && !this.actionToOperation.Keys.Contains(description.Messages[0].Action))
             {
                 this.actionToOperation.Add(description.Messages[0].Action, description.Name);
             }
             if (!this.operationPerfCounters.TryGetValue(description.Name, out base2))
             {
                 OperationPerformanceCountersBase base3 = PerformanceCountersFactory.CreateOperationCounters(serviceHost.Description.Name, contractDescription.Name, description.Name, endpointDispatcher.PerfCounterBaseId);
                 if ((base3 != null) && base3.Initialized)
                 {
                     this.operationPerfCounters.Add(description.Name, base3);
                 }
                 else
                 {
                     this.initialized = false;
                     return;
                 }
             }
         }
         EndpointPerformanceCountersBase base4 = PerformanceCountersFactory.CreateEndpointCounters(serviceHost.Description.Name, contractDescription.Name, endpointDispatcher.PerfCounterBaseId);
         if ((base4 != null) && base4.Initialized)
         {
             this.endpointPerfCounters = base4;
         }
     }
     if (PerformanceCounters.PerformanceCountersEnabled)
     {
         this.servicePerfCounters = serviceHost.Counters;
     }
     if (PerformanceCounters.MinimalPerformanceCountersEnabled)
     {
         this.defaultPerfCounters = serviceHost.DefaultCounters;
     }
     this.initialized = true;
 }
 public ServiceModelPerformanceCountersEntry(System.ServiceModel.Diagnostics.DefaultPerformanceCounters defaultServiceCounters)
 {
     this.defaultPerformanceCounters = defaultServiceCounters;
     this.performanceCounters = new List<ServiceModelPerformanceCounters>();
 }
 public ServiceModelPerformanceCountersEntry(System.ServiceModel.Diagnostics.DefaultPerformanceCounters defaultServiceCounters)
 {
     this.defaultPerformanceCounters = defaultServiceCounters;
     this.performanceCounters        = new List <ServiceModelPerformanceCounters>();
 }