Xamarin Public Jenkins (auto-signing) e79aa3c0ed Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
2016-08-03 10:59:49 +00:00

43 lines
1.7 KiB
C#

//------------------------------------------------------------
// 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);
}
}
}