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
- SrgsItemList.cs
- DragEvent.cs
- BookmarkResumptionRecord.cs
- ProfileEventArgs.cs
- XmlAttributes.cs
- Tile.cs
- StatusBar.cs
- JsonServiceDocumentSerializer.cs
- BindUriHelper.cs
- ListViewItemMouseHoverEvent.cs
- AttachedAnnotationChangedEventArgs.cs
- DependencyObjectType.cs
- XmlSerializerVersionAttribute.cs
- SecurityException.cs
- FunctionCommandText.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- X509Certificate.cs
- TypeResolver.cs
- LicenseManager.cs
- OpenFileDialog.cs
- XmlSchema.cs
- PropertyGeneratedEventArgs.cs
- ButtonChrome.cs
- ECDiffieHellmanCngPublicKey.cs
- DataSourceCache.cs
- CheckedPointers.cs
- ProfilePropertySettings.cs
- ServiceReference.cs
- DbReferenceCollection.cs
- FocusManager.cs
- _TLSstream.cs
- AttributeQuery.cs
- Missing.cs
- CatalogZoneBase.cs
- MatchingStyle.cs
- XmlDataProvider.cs
- MergeFilterQuery.cs
- ZipIOModeEnforcingStream.cs
- FragmentQuery.cs
- ValidationResult.cs
- ListViewEditEventArgs.cs
- CacheAxisQuery.cs
- MarshalByValueComponent.cs
- BinaryObjectWriter.cs
- RegexBoyerMoore.cs
- ContentDisposition.cs
- CryptoSession.cs
- BindingCollection.cs
- SynchronizationValidator.cs
- PolygonHotSpot.cs
- HebrewNumber.cs
- entityreference_tresulttype.cs
- MediaElement.cs
- WeakReferenceList.cs
- FigureParaClient.cs
- SessionEndedEventArgs.cs
- _ScatterGatherBuffers.cs
- PopupEventArgs.cs
- WebPartDisplayModeCancelEventArgs.cs
- ContainerControl.cs
- SymbolPair.cs
- DesignerCategoryAttribute.cs
- TextDecorationLocationValidation.cs
- GroupQuery.cs
- handlecollector.cs
- EntityConnection.cs
- SmiRequestExecutor.cs
- TrackingProfileCache.cs
- EntityConnection.cs
- xdrvalidator.cs
- CodeLinePragma.cs
- ActivityCodeDomSerializationManager.cs
- SHA512Managed.cs
- TopClause.cs
- Rect.cs
- ISessionStateStore.cs
- PropertyToken.cs
- InlinedAggregationOperator.cs
- DoubleAnimationUsingKeyFrames.cs
- Graph.cs
- SmtpMail.cs
- ReturnValue.cs
- Tile.cs
- WorkflowInstanceRecord.cs
- WebResponse.cs
- DbConnectionPoolGroup.cs
- MachineKeySection.cs
- DocobjHost.cs
- SqlTriggerContext.cs
- CodeCatchClause.cs
- TimeSpan.cs
- CompiledXpathExpr.cs
- DependentList.cs
- TextLineBreak.cs
- Model3DCollection.cs
- SerializationAttributes.cs
- Convert.cs
- RemotingServices.cs
- UIElementAutomationPeer.cs
- ApplicationSettingsBase.cs