1 //------------------------------------------------------------ 2 // Copyright (c) Microsoft Corporation. All rights reserved. 3 //------------------------------------------------------------ 4 5 namespace System.ServiceModel.Administration 6 { 7 using System; 8 using System.ServiceModel.Description; 9 using System.Diagnostics; 10 using System.ServiceModel.Channels; 11 using System.Globalization; 12 13 internal class ServiceEndpointAssociationProvider : ProviderBase, IWmiProvider 14 { IWmiProvider.EnumInstances(IWmiInstances instances)15 void IWmiProvider.EnumInstances(IWmiInstances instances) 16 { 17 foreach (ServiceInfo info in new ServiceInfoCollection(ManagementExtension.Services)) 18 { 19 string serviceRef = ServiceInstanceProvider.GetReference(info); 20 21 foreach (EndpointInfo endpointInfo in info.Endpoints) 22 { 23 IWmiInstance instance = instances.NewInstance(null); 24 25 string endpointRef = EndpointInstanceProvider.EndpointReference(endpointInfo.ListenUri, endpointInfo.Contract.Name); 26 instance.SetProperty(AdministrationStrings.Endpoint, endpointRef); 27 instance.SetProperty(AdministrationStrings.Service, serviceRef); 28 29 instances.AddInstance(instance); 30 } 31 } 32 } 33 IWmiProvider.GetInstance(IWmiInstance instance)34 bool IWmiProvider.GetInstance(IWmiInstance instance) 35 { 36 string serviceRef = instance.GetProperty(AdministrationStrings.Service) as string; 37 string endpointRef = instance.GetProperty(AdministrationStrings.Endpoint) as string; 38 39 return !String.IsNullOrEmpty(serviceRef) && !String.IsNullOrEmpty(endpointRef); 40 } 41 } 42 } 43