|
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------
namespace System.ServiceModel.Administration
{
using System;
using System.ServiceModel.Description;
using System.Diagnostics;
using System.ServiceModel.Channels;
using System.Globalization;
internal class ServiceEndpointAssociationProvider : ProviderBase, IWmiProvider
{
void IWmiProvider.EnumInstances(IWmiInstances instances)
{
foreach (ServiceInfo info in new ServiceInfoCollection(ManagementExtension.Services))
{
string serviceRef = ServiceInstanceProvider.GetReference(info);
foreach (EndpointInfo endpointInfo in info.Endpoints)
{
IWmiInstance instance = instances.NewInstance(null);
string endpointRef = EndpointInstanceProvider.EndpointReference(endpointInfo.ListenUri, endpointInfo.Contract.Name);
instance.SetProperty(AdministrationStrings.Endpoint, endpointRef);
instance.SetProperty(AdministrationStrings.Service, serviceRef);
instances.AddInstance(instance);
}
}
}
bool IWmiProvider.GetInstance(IWmiInstance instance)
{
string serviceRef = instance.GetProperty(AdministrationStrings.Service) as string;
string endpointRef = instance.GetProperty(AdministrationStrings.Endpoint) as string;
return !String.IsNullOrEmpty(serviceRef) && !String.IsNullOrEmpty(endpointRef);
}
}
}
|