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
- SafeMILHandleMemoryPressure.cs
- ControlPropertyNameConverter.cs
- ViewCellRelation.cs
- FixUpCollection.cs
- PropertyStore.cs
- RectConverter.cs
- HttpResponseMessageProperty.cs
- StringFreezingAttribute.cs
- StringInfo.cs
- FormsAuthenticationEventArgs.cs
- SecurityTokenValidationException.cs
- FileDataSourceCache.cs
- OdbcException.cs
- AudioSignalProblemOccurredEventArgs.cs
- ToolStripMenuItem.cs
- ObjectDisposedException.cs
- XmlnsDefinitionAttribute.cs
- ProtocolState.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- NoClickablePointException.cs
- RadioButtonAutomationPeer.cs
- QfeChecker.cs
- DataGridViewColumnTypePicker.cs
- MappingMetadataHelper.cs
- XmlSchemaValidator.cs
- UseAttributeSetsAction.cs
- HandoffBehavior.cs
- HttpsChannelListener.cs
- IChannel.cs
- SecurityUtils.cs
- DataGridColumnCollection.cs
- StylusPlugInCollection.cs
- WorkflowServiceHostFactory.cs
- FormViewCommandEventArgs.cs
- TextTreeNode.cs
- TripleDES.cs
- MessageFormatterConverter.cs
- FacetDescriptionElement.cs
- PassportAuthentication.cs
- IdleTimeoutMonitor.cs
- ExpandableObjectConverter.cs
- MetaTableHelper.cs
- ListViewItemSelectionChangedEvent.cs
- IFlowDocumentViewer.cs
- ListItemCollection.cs
- ColumnCollection.cs
- XmlSchemaSimpleContentExtension.cs
- MatrixCamera.cs
- CodeVariableDeclarationStatement.cs
- UnhandledExceptionEventArgs.cs
- TableLayoutPanelDesigner.cs
- Pkcs7Recipient.cs
- ResourceManagerWrapper.cs
- SqlNode.cs
- ZipIOLocalFileHeader.cs
- XmlSchema.cs
- BitmapMetadataBlob.cs
- WebPartConnectionsCancelEventArgs.cs
- FormsAuthenticationUser.cs
- ListViewSortEventArgs.cs
- PersonalizableAttribute.cs
- mansign.cs
- StructureChangedEventArgs.cs
- MouseEvent.cs
- RequestSecurityTokenResponse.cs
- RepeaterItemCollection.cs
- WmlControlAdapter.cs
- HttpListener.cs
- ConnectionsZone.cs
- FixedLineResult.cs
- DataGridViewAdvancedBorderStyle.cs
- PaperSource.cs
- Interfaces.cs
- ItemDragEvent.cs
- DivideByZeroException.cs
- DbConnectionStringBuilder.cs
- _NativeSSPI.cs
- DataGridViewCellEventArgs.cs
- ProxyAttribute.cs
- DataGrid.cs
- GetPolicyDetailsRequest.cs
- ClosableStream.cs
- RijndaelManagedTransform.cs
- DesignTimeParseData.cs
- UnwrappedTypesXmlSerializerManager.cs
- XsltSettings.cs
- SamlDoNotCacheCondition.cs
- AccessedThroughPropertyAttribute.cs
- arabicshape.cs
- DocumentPageViewAutomationPeer.cs
- CodeTypeOfExpression.cs
- HttpProtocolImporter.cs
- HttpModuleActionCollection.cs
- safemediahandle.cs
- ProxyManager.cs
- ExtenderProvidedPropertyAttribute.cs
- SystemResourceKey.cs
- WebScriptClientGenerator.cs
- PersonalizationProviderCollection.cs
- SchemaManager.cs