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
- PropertyChangingEventArgs.cs
- JoinTreeSlot.cs
- SchemaManager.cs
- NotFiniteNumberException.cs
- CodeNamespaceImportCollection.cs
- SrgsSemanticInterpretationTag.cs
- PermissionSetTriple.cs
- PageBreakRecord.cs
- ReadOnlyTernaryTree.cs
- HideDisabledControlAdapter.cs
- Receive.cs
- SByteConverter.cs
- ExecutionEngineException.cs
- SaveFileDialog.cs
- NamedObject.cs
- MailFileEditor.cs
- Activity.cs
- ReverseInheritProperty.cs
- ModelVisual3D.cs
- ObjectSecurity.cs
- Emitter.cs
- CompilerWrapper.cs
- XmlSchemaRedefine.cs
- Matrix3D.cs
- NavigateEvent.cs
- OleDbParameterCollection.cs
- DesignerHierarchicalDataSourceView.cs
- GeneratedCodeAttribute.cs
- UriTemplateDispatchFormatter.cs
- DataKeyArray.cs
- ColorMatrix.cs
- HostingEnvironment.cs
- ObjectDisposedException.cs
- SchemaDeclBase.cs
- BuildProviderCollection.cs
- RangeValuePattern.cs
- DBConcurrencyException.cs
- Compilation.cs
- InstanceCollisionException.cs
- ClientOptions.cs
- CustomPopupPlacement.cs
- WebPartDisplayModeEventArgs.cs
- XmlAttributeOverrides.cs
- CapabilitiesRule.cs
- SoapReflectionImporter.cs
- FilterElement.cs
- XPathExpr.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- LateBoundChannelParameterCollection.cs
- PropertyItem.cs
- SectionXmlInfo.cs
- CustomCategoryAttribute.cs
- XmlNullResolver.cs
- EdmSchemaError.cs
- GroupBoxRenderer.cs
- SchemaSetCompiler.cs
- FixedTextView.cs
- AsnEncodedData.cs
- TaskFormBase.cs
- SessionState.cs
- Label.cs
- ApplicationSecurityManager.cs
- ISFClipboardData.cs
- DesignerDeviceConfig.cs
- IpcManager.cs
- OptimisticConcurrencyException.cs
- ReliableOutputSessionChannel.cs
- PreviewKeyDownEventArgs.cs
- BamlMapTable.cs
- DataColumnMapping.cs
- AppDomainFactory.cs
- FontWeightConverter.cs
- AppDomainProtocolHandler.cs
- CompilerState.cs
- ResourceReader.cs
- ResXResourceSet.cs
- WebPartCollection.cs
- RepeaterItemCollection.cs
- Light.cs
- DeclaredTypeElement.cs
- ArithmeticException.cs
- WindowsGraphicsWrapper.cs
- InvalidOperationException.cs
- XmlWrappingWriter.cs
- ResourcePart.cs
- CharacterMetricsDictionary.cs
- QuaternionAnimation.cs
- DateTimeOffset.cs
- SessionIDManager.cs
- VideoDrawing.cs
- GridViewRowPresenterBase.cs
- FastEncoder.cs
- DataGridTextBox.cs
- Rule.cs
- InkPresenterAutomationPeer.cs
- SpellerInterop.cs
- Int64KeyFrameCollection.cs
- PassportIdentity.cs
- TemplateKeyConverter.cs
- HMACSHA256.cs