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
- PageSetupDialog.cs
- httpstaticobjectscollection.cs
- SystemWebCachingSectionGroup.cs
- ReflectionPermission.cs
- ValidatorCompatibilityHelper.cs
- SoapCodeExporter.cs
- OleDbCommandBuilder.cs
- FormattedText.cs
- OracleNumber.cs
- PlanCompiler.cs
- XmlSchemaIdentityConstraint.cs
- IPAddress.cs
- SynchronizingStream.cs
- IDQuery.cs
- CompensationDesigner.cs
- InArgumentConverter.cs
- SiteMapProvider.cs
- ScrollableControl.cs
- FlowLayoutPanelDesigner.cs
- TextBox.cs
- GridViewDeleteEventArgs.cs
- MaterialGroup.cs
- ObjectItemCollection.cs
- CommonRemoteMemoryBlock.cs
- NameService.cs
- OuterGlowBitmapEffect.cs
- ListViewContainer.cs
- ClientBuildManager.cs
- DataGridViewLayoutData.cs
- ContextStaticAttribute.cs
- ModifiableIteratorCollection.cs
- InfoCardSymmetricAlgorithm.cs
- MiniParameterInfo.cs
- HitTestFilterBehavior.cs
- HealthMonitoringSectionHelper.cs
- TransformationRules.cs
- DataGridViewControlCollection.cs
- OleDbSchemaGuid.cs
- InstanceCompleteException.cs
- OdbcError.cs
- ValidationErrorCollection.cs
- MsmqIntegrationMessageProperty.cs
- NamedElement.cs
- ResourceAssociationTypeEnd.cs
- StreamReader.cs
- ExtenderProviderService.cs
- DockingAttribute.cs
- GroupDescription.cs
- PagedDataSource.cs
- CmsUtils.cs
- WindowsMenu.cs
- SqlAliasesReferenced.cs
- RepeatBehaviorConverter.cs
- XmlReflectionMember.cs
- GridSplitterAutomationPeer.cs
- TabControl.cs
- ErrorRuntimeConfig.cs
- DataControlCommands.cs
- XmlWrappingWriter.cs
- metadatamappinghashervisitor.hashsourcebuilder.cs
- ContentType.cs
- UpdateTracker.cs
- DesignerAutoFormatStyle.cs
- ContractMethodParameterInfo.cs
- SkipStoryboardToFill.cs
- TranslateTransform.cs
- StrongNameUtility.cs
- SerializationEventsCache.cs
- TransactionsSectionGroup.cs
- IxmlLineInfo.cs
- ItemsPresenter.cs
- ColorAnimationUsingKeyFrames.cs
- DbXmlEnabledProviderManifest.cs
- ServiceContractDetailViewControl.cs
- DateTimeFormatInfo.cs
- DataGridViewBand.cs
- Property.cs
- FileDialog.cs
- KerberosTicketHashIdentifierClause.cs
- Validator.cs
- WebPartHeaderCloseVerb.cs
- Frame.cs
- HttpResponseHeader.cs
- IfAction.cs
- RegexReplacement.cs
- AttributeParameterInfo.cs
- DataControlField.cs
- AbstractSvcMapFileLoader.cs
- UIElement3DAutomationPeer.cs
- ListParaClient.cs
- BufferedStream.cs
- AllMembershipCondition.cs
- TrimSurroundingWhitespaceAttribute.cs
- SHA256.cs
- SmtpMail.cs
- AsymmetricKeyExchangeFormatter.cs
- DES.cs
- Win32KeyboardDevice.cs
- BitmapEffectRenderDataResource.cs
- IgnoreDeviceFilterElement.cs