ServiceEndpointAssociationProvider.cs 1.7 KB

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