File: System\ServiceModel\Administration\ServiceAppDomainAssociationProvider.cs
Project: ndp\cdf\src\WCF\ServiceModel\System.ServiceModel.csproj (System.ServiceModel)
//------------------------------------------------------------
// Copyright (c) Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------
 
namespace System.ServiceModel.Administration
{
    using System;
    using System.Runtime;
 
    class ServiceAppDomainAssociationProvider : ProviderBase, IWmiProvider
    {
        void IWmiProvider.EnumInstances(IWmiInstances instances)
        {
            Fx.Assert(null != instances, "");
            foreach (ServiceInfo info in new ServiceInfoCollection(ManagementExtension.Services))
            {
                IWmiInstance instance = instances.NewInstance(null);
 
                instance.SetProperty(AdministrationStrings.AppDomainInfo, AppDomainInstanceProvider.GetReference());
                instance.SetProperty(AdministrationStrings.Service, ServiceInstanceProvider.GetReference(info));
 
                instances.AddInstance(instance);
            }
        }
 
        bool IWmiProvider.GetInstance(IWmiInstance instance)
        {
            Fx.Assert(null != instance, "");
            string serviceRef = instance.GetProperty(AdministrationStrings.Service) as string;
            string appDomainInfoRef = instance.GetProperty(AdministrationStrings.AppDomainInfo) as string;
 
            return !String.IsNullOrEmpty(serviceRef) && !String.IsNullOrEmpty(appDomainInfoRef);
        }
    }
}