Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Administration / ManagementExtension.cs / 1 / ManagementExtension.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Administration { using System; using System.ServiceModel; using System.ServiceModel.Description; using System.Collections.Generic; using System.IO; using System.Text; using System.Threading; using System.Runtime.Serialization; using System.ServiceModel.Configuration; using System.Xml; using System.Security; internal sealed class ManagementExtension { static Dictionaryservices; static bool activated = false; static object syncRoot = new object(); static bool isEnabled = GetIsWmiProviderEnabled(); internal static bool IsActivated { get { return ManagementExtension.activated; } } internal static bool IsEnabled { get { return ManagementExtension.isEnabled; } } /// /// Critical - calls critical method DiagnosticSection.UnsafeGetSection /// Safe - doesn't leak config section instance, just returns a bool /// [SecurityCritical, SecurityTreatAsSafe] static bool GetIsWmiProviderEnabled() { return DiagnosticSection.UnsafeGetSection().WmiProviderEnabled; } static DictionaryGetServices() { if (ManagementExtension.services == null) { lock (ManagementExtension.syncRoot) { if (ManagementExtension.services == null) { ManagementExtension.services = new Dictionary (); } } } return ManagementExtension.services; } internal static ICollection Services { get { return GetServices().Keys; } } internal static DateTime GetTimeOpened(ServiceHostBase service) { return GetServices()[service]; } public static void OnServiceOpened(ServiceHostBase serviceHostBase) { EnsureManagementProvider(); Add(serviceHostBase); } public static void OnServiceClosing(ServiceHostBase serviceHostBase) { Remove(serviceHostBase); } static void Add(ServiceHostBase service) { Dictionary services = GetServices(); lock (services) { if (!services.ContainsKey(service)) { services.Add(service, DateTime.Now); } } } static void Remove(ServiceHostBase service) { Dictionary services = GetServices(); lock (services) { if (services.ContainsKey(service)) { services.Remove(service); } } } static void EnsureManagementProvider() { if (!ManagementExtension.activated) { lock (ManagementExtension.syncRoot) { if (!ManagementExtension.activated) { Activate(); ManagementExtension.activated = true; } } } } static void Activate() { WbemProvider wmi = new WbemProvider(AdministrationStrings.IndigoNamespace, AdministrationStrings.IndigoAppName); wmi.Register(AdministrationStrings.AppDomainInfo, new AppDomainInstanceProvider()); wmi.Register(AdministrationStrings.Service, new ServiceInstanceProvider()); wmi.Register(AdministrationStrings.Contract, new ContractInstanceProvider()); wmi.Register(AdministrationStrings.Endpoint, new EndpointInstanceProvider()); wmi.Register(AdministrationStrings.ServiceAppDomain, new ServiceAppDomainAssociationProvider()); wmi.Register(AdministrationStrings.ServiceToEndpointAssociation, new ServiceEndpointAssociationProvider()); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StringCollection.cs
- AttachedPropertyBrowsableAttribute.cs
- hresults.cs
- ClientType.cs
- RbTree.cs
- DataRecordInternal.cs
- Parameter.cs
- Visual3D.cs
- XPathNodeHelper.cs
- ExponentialEase.cs
- AssemblyGen.cs
- WebBrowserDocumentCompletedEventHandler.cs
- DefaultAssemblyResolver.cs
- DesignerDataStoredProcedure.cs
- VBIdentifierNameEditor.cs
- XhtmlMobileTextWriter.cs
- ImageFormatConverter.cs
- FontClient.cs
- AdRotator.cs
- HtmlFormWrapper.cs
- ElementHost.cs
- StringDictionaryEditor.cs
- SoapEnumAttribute.cs
- XmlSerializerNamespaces.cs
- CollectionConverter.cs
- DataPagerCommandEventArgs.cs
- _SafeNetHandles.cs
- TabControlCancelEvent.cs
- InputScope.cs
- EditingCoordinator.cs
- Certificate.cs
- FolderBrowserDialogDesigner.cs
- Facet.cs
- RegionInfo.cs
- XmlParserContext.cs
- UnauthorizedWebPart.cs
- MobileCategoryAttribute.cs
- SqlDataSourceEnumerator.cs
- FontFamilyConverter.cs
- filewebresponse.cs
- _AuthenticationState.cs
- OutputCacheSection.cs
- ListViewInsertedEventArgs.cs
- DataGridColumnHeaderCollection.cs
- cookieexception.cs
- TabControl.cs
- _LocalDataStore.cs
- SmiXetterAccessMap.cs
- WebServiceErrorEvent.cs
- ControlHelper.cs
- ChangeInterceptorAttribute.cs
- ConnectionPoint.cs
- _SafeNetHandles.cs
- DeclarativeCatalogPart.cs
- FileLogRecordEnumerator.cs
- DesignSurfaceCollection.cs
- SyndicationDeserializer.cs
- TabControl.cs
- CallSiteOps.cs
- BamlRecordWriter.cs
- MessageQueuePermissionEntryCollection.cs
- DecimalConverter.cs
- StrokeIntersection.cs
- DataSvcMapFileSerializer.cs
- AttributeCollection.cs
- BitmapEffectOutputConnector.cs
- PropertyKey.cs
- QilVisitor.cs
- XmlCustomFormatter.cs
- PageFunction.cs
- GeneralTransform3DGroup.cs
- WinInetCache.cs
- StylusPoint.cs
- MILUtilities.cs
- PointCollectionValueSerializer.cs
- ConfigXmlWhitespace.cs
- SqlGenericUtil.cs
- PaintValueEventArgs.cs
- DetailsView.cs
- RelationshipWrapper.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- ListSourceHelper.cs
- SqlNodeTypeOperators.cs
- EditCommandColumn.cs
- InsufficientMemoryException.cs
- wgx_commands.cs
- ComponentEditorPage.cs
- GuidelineCollection.cs
- SetStoryboardSpeedRatio.cs
- MsmqIntegrationOutputChannel.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- ObjectItemCollection.cs
- ResourceCategoryAttribute.cs
- SchemaObjectWriter.cs
- HiddenField.cs
- SecurityChannelListener.cs
- ObservableCollectionDefaultValueFactory.cs
- DecoderNLS.cs
- FamilyMap.cs
- DataGridPagerStyle.cs