Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / TransactionBridge / Microsoft / Transactions / Wsat / Protocol / RegistryConfigurationProvider.cs / 1 / RegistryConfigurationProvider.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- // Implement the ConfigurationProvider base class for the system registry using System; using System.ServiceModel.Channels; using System.IO; using System.Security; using System.Security.AccessControl; using Microsoft.Transactions.Bridge; using Microsoft.Win32; namespace Microsoft.Transactions.Wsat.Protocol { class RegistryConfigurationProvider : ConfigurationProvider { RegistryKey regKey; public RegistryConfigurationProvider(RegistryKey rootKey, string subKey) { try { if (rootKey != null) { // This can return null if the key does not exist this.regKey = rootKey.OpenSubKey(subKey, RegistryKeyPermissionCheck.ReadSubTree, RegistryRights.ReadKey); } } catch (SecurityException e) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new ConfigurationProviderException(SR.GetString(SR.RegistryKeyOpenSubKeyFailed, subKey, rootKey.Name, e.Message), e)); } catch (IOException e) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new ConfigurationProviderException(SR.GetString(SR.RegistryKeyOpenSubKeyFailed, subKey, rootKey.Name, e.Message), e)); } } public override void Dispose() { if (this.regKey != null) { this.regKey.Close(); this.regKey = null; } } object ReadValue(string value, object defaultValue) { if (this.regKey == null) return defaultValue; try { return this.regKey.GetValue(value, defaultValue); } catch (SecurityException e) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new ConfigurationProviderException(SR.GetString(SR.RegistryKeyGetValueFailed, value, this.regKey.Name, e.Message), e)); } catch (IOException e) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new ConfigurationProviderException(SR.GetString(SR.RegistryKeyGetValueFailed, value, this.regKey.Name, e.Message), e)); } } public override int ReadInteger(string value, int defaultValue) { object regValue = ReadValue(value, defaultValue); if (regValue == null || !(regValue is Int32)) return defaultValue; return (int)regValue; } public override string ReadString(string value, string defaultValue) { object regValue = ReadValue(value, defaultValue); if (regValue == null) return defaultValue; string regString = regValue as string; if (regString == null) return defaultValue; return regString; } public override string[] ReadMultiString(string value, string[] defaultValue) { object regValue = ReadValue(value, defaultValue); if (regValue == null) return defaultValue; string[] regMulti = regValue as string[]; if (regMulti == null) return defaultValue; return regMulti; } public override ConfigurationProvider OpenKey(string key) { return new RegistryConfigurationProvider(this.regKey, key); } } } // 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
- SerializationSectionGroup.cs
- Matrix3D.cs
- ApplicationTrust.cs
- ObjectStateManager.cs
- ThreadInterruptedException.cs
- ResetableIterator.cs
- OracleDataAdapter.cs
- NCryptNative.cs
- Classification.cs
- Thickness.cs
- CharStorage.cs
- CodeGenerator.cs
- CodeDomDecompiler.cs
- BaseTemplateBuildProvider.cs
- NTAccount.cs
- RegionIterator.cs
- HMAC.cs
- TimelineGroup.cs
- BreadCrumbTextConverter.cs
- OdbcDataReader.cs
- FormViewUpdateEventArgs.cs
- X509SecurityTokenParameters.cs
- RegexCharClass.cs
- DiagnosticStrings.cs
- QueryContinueDragEventArgs.cs
- BrowserCapabilitiesCodeGenerator.cs
- IdleTimeoutMonitor.cs
- Events.cs
- DataPagerFieldCommandEventArgs.cs
- bidPrivateBase.cs
- ListViewAutomationPeer.cs
- TypeForwardedToAttribute.cs
- FormatterConverter.cs
- Setter.cs
- TempFiles.cs
- LiteralTextContainerControlBuilder.cs
- PersistenceParticipant.cs
- CanonicalizationDriver.cs
- SqlCacheDependency.cs
- TabPanel.cs
- MarkedHighlightComponent.cs
- SharedPersonalizationStateInfo.cs
- DbProviderSpecificTypePropertyAttribute.cs
- COM2TypeInfoProcessor.cs
- X509Utils.cs
- HeaderedContentControl.cs
- MarkupWriter.cs
- DesignerOptionService.cs
- GetPageCompletedEventArgs.cs
- StructuredType.cs
- DefaultValueAttribute.cs
- RepeatInfo.cs
- ColorTransform.cs
- SamlConstants.cs
- Win32Exception.cs
- DesignerLoader.cs
- LinqDataSourceDisposeEventArgs.cs
- AxisAngleRotation3D.cs
- AvTrace.cs
- DataServiceConfiguration.cs
- EllipseGeometry.cs
- CutCopyPasteHelper.cs
- ButtonField.cs
- ResourceType.cs
- EmptyElement.cs
- XPathLexer.cs
- Vector3DAnimationBase.cs
- DataChangedEventManager.cs
- MachineKeyConverter.cs
- DesignTimeTemplateParser.cs
- SecurityManager.cs
- ExternalException.cs
- EventLogPermissionEntryCollection.cs
- validation.cs
- SettingsProviderCollection.cs
- SystemFonts.cs
- PathGradientBrush.cs
- ReadWriteObjectLock.cs
- _ConnectOverlappedAsyncResult.cs
- MultipartContentParser.cs
- DesignerTransactionCloseEvent.cs
- EncodingFallbackAwareXmlTextWriter.cs
- Dump.cs
- PaperSource.cs
- EventBuilder.cs
- DataColumnMappingCollection.cs
- ExpandSegmentCollection.cs
- PinnedBufferMemoryStream.cs
- GradientBrush.cs
- DataGrid.cs
- DisplayInformation.cs
- uribuilder.cs
- SortFieldComparer.cs
- ObjectQueryExecutionPlan.cs
- MsmqDecodeHelper.cs
- MetabaseServerConfig.cs
- FormViewUpdateEventArgs.cs
- HealthMonitoringSection.cs
- SQLString.cs
- ContractCodeDomInfo.cs