Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / ServiceModel / System / ServiceModel / Configuration / XmlElementElement.cs / 1 / XmlElementElement.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Configuration { using System; using System.Collections.ObjectModel; using System.Collections.Generic; using System.Configuration; using System.Xml; using System.Security; public sealed partial class XmlElementElement : ConfigurationElement { public XmlElementElement() { } public XmlElementElement(XmlElement element) : this() { this.XmlElement = element; } public void Copy(XmlElementElement source) { if (this.IsReadOnly()) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigReadOnly))); } if (null == source) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("source"); } if (null != source.XmlElement) { this.XmlElement = (XmlElement)source.XmlElement.Clone(); } } ////// Critical - uses the critical helper SetIsPresent /// Safe - controls how/when SetIsPresent is used, not arbitrarily callable from PT (method is protected and class is sealed) /// [SecurityCritical, SecurityTreatAsSafe] protected override void DeserializeElement(XmlReader reader, bool serializeCollectionKey) { SetIsPresent(); DeserializeElementCore(reader); } private void DeserializeElementCore(XmlReader reader) { XmlDocument doc = new XmlDocument(); this.XmlElement = (XmlElement)doc.ReadNode(reader); } internal void ResetInternal(XmlElementElement element) { this.Reset(element); } ////// Critical - calls ConfigurationHelpers.SetIsPresent which elevates in order to set a property /// Safe - only passes 'this', does not let caller influence parameter /// [SecurityCritical] void SetIsPresent() { ConfigurationHelpers.SetIsPresent(this); } protected override bool SerializeToXmlElement(XmlWriter writer, String elementName) { bool dataToWrite = this.XmlElement != null; if (dataToWrite && writer != null) { if (!String.Equals(elementName, ConfigurationStrings.XmlElement, StringComparison.Ordinal)) { writer.WriteStartElement(elementName); } using (XmlNodeReader reader = new XmlNodeReader(this.XmlElement)) { writer.WriteNode(reader, false); } if (!String.Equals(elementName, ConfigurationStrings.XmlElement, StringComparison.Ordinal)) { writer.WriteEndElement(); } } return dataToWrite; } protected override void PostDeserialize() { this.Validate(); base.PostDeserialize(); } void Validate() { if (this.XmlElement == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ConfigurationErrorsException(SR.GetString(SR.ConfigXmlElementMustBeSet), this.ElementInformation.Source, this.ElementInformation.LineNumber)); } } [ConfigurationProperty(ConfigurationStrings.XmlElement, DefaultValue = null, Options = ConfigurationPropertyOptions.IsKey)] public XmlElement XmlElement { get { return (XmlElement)base[ConfigurationStrings.XmlElement]; } set { base[ConfigurationStrings.XmlElement] = value; } } } } // 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
- XslNumber.cs
- DeflateInput.cs
- Serializer.cs
- XmlReflectionMember.cs
- ToolTipAutomationPeer.cs
- BaseTemplateBuildProvider.cs
- BitmapEffectvisualstate.cs
- IsolationInterop.cs
- DataTableMapping.cs
- DataGridViewRowPostPaintEventArgs.cs
- ComPlusServiceLoader.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- EventLogPermissionAttribute.cs
- DataFormats.cs
- TypedReference.cs
- DiscreteKeyFrames.cs
- URL.cs
- graph.cs
- FontDialog.cs
- ScriptResourceInfo.cs
- ZipIOExtraFieldPaddingElement.cs
- ManagementClass.cs
- DataGridViewCellCancelEventArgs.cs
- FileDialog.cs
- ControlType.cs
- SamlAdvice.cs
- PasswordRecovery.cs
- WebBrowserHelper.cs
- TemplateEditingFrame.cs
- Geometry.cs
- SpeechAudioFormatInfo.cs
- EventEntry.cs
- XhtmlTextWriter.cs
- ListViewTableRow.cs
- TriggerCollection.cs
- DataObjectFieldAttribute.cs
- Point4DValueSerializer.cs
- Validator.cs
- SimplePropertyEntry.cs
- SiteMapProvider.cs
- UrlParameterReader.cs
- IsolatedStoragePermission.cs
- Int32AnimationUsingKeyFrames.cs
- FactoryGenerator.cs
- ObjRef.cs
- SiteMembershipCondition.cs
- Knowncolors.cs
- ContactManager.cs
- DictionaryBase.cs
- TextDecorationCollection.cs
- XmlAnyElementAttributes.cs
- FillBehavior.cs
- ColumnCollection.cs
- SqlConnectionPoolProviderInfo.cs
- StorageTypeMapping.cs
- SmtpReplyReaderFactory.cs
- PixelFormatConverter.cs
- MarshalByRefObject.cs
- DateTimeParse.cs
- InternalMappingException.cs
- WebConfigurationFileMap.cs
- ObjectDisposedException.cs
- XmlJsonWriter.cs
- StyleSelector.cs
- DataGridViewSelectedRowCollection.cs
- QueryPageSettingsEventArgs.cs
- PreservationFileReader.cs
- DrawingState.cs
- SoapAttributeAttribute.cs
- Effect.cs
- OleDbFactory.cs
- WpfXamlType.cs
- StrokeRenderer.cs
- MailWebEventProvider.cs
- AttributeParameterInfo.cs
- DefaultPrintController.cs
- SqlUserDefinedTypeAttribute.cs
- PipeException.cs
- WindowsTooltip.cs
- ProfileModule.cs
- httpapplicationstate.cs
- ModelItemKeyValuePair.cs
- TypeBuilderInstantiation.cs
- WindowsFormsSynchronizationContext.cs
- ItemMap.cs
- DataColumnMapping.cs
- TemplateField.cs
- XhtmlMobileTextWriter.cs
- ChannelPool.cs
- ArraySubsetEnumerator.cs
- EffectiveValueEntry.cs
- XmlEncodedRawTextWriter.cs
- AttachmentCollection.cs
- HttpModulesSection.cs
- WindowsTab.cs
- HashAlgorithm.cs
- ServiceAuthorizationElement.cs
- InputLangChangeRequestEvent.cs
- PrefixQName.cs
- LoadedOrUnloadedOperation.cs