Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / ManagedLibraries / Security / System / Security / Cryptography / Xml / DataObject.cs / 5 / DataObject.cs
// ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // DataObject.cs // // 21 [....] 2000 // namespace System.Security.Cryptography.Xml { using System; using System.IO; using System.Xml; [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public class DataObject { private string m_id; private string m_mimeType; private string m_encoding; private CanonicalXmlNodeList m_elData; private XmlElement m_cachedXml; // // public constructors // public DataObject () { m_cachedXml = null; m_elData = new CanonicalXmlNodeList(); } public DataObject (string id, string mimeType, string encoding, XmlElement data) { if (data == null) throw new ArgumentNullException("data"); m_id = id; m_mimeType = mimeType; m_encoding = encoding; m_elData = new CanonicalXmlNodeList(); m_elData.Add(data); m_cachedXml = null; } // // public properties // public string Id { get { return m_id; } set { m_id = value; m_cachedXml = null; } } public string MimeType { get { return m_mimeType; } set { m_mimeType = value; m_cachedXml = null; } } public string Encoding { get { return m_encoding; } set { m_encoding = value; m_cachedXml = null; } } public XmlNodeList Data { get { return m_elData; } set { if (value == null) throw new ArgumentNullException("value"); // Reset the node list m_elData = new CanonicalXmlNodeList(); foreach (XmlNode node in value) { m_elData.Add(node); } m_cachedXml = null; } } private bool CacheValid { get { return(m_cachedXml != null); } } // // public methods // public XmlElement GetXml() { if (CacheValid) return(m_cachedXml); XmlDocument document = new XmlDocument(); document.PreserveWhitespace = true; return GetXml(document); } internal XmlElement GetXml (XmlDocument document) { XmlElement objectElement = document.CreateElement("Object", SignedXml.XmlDsigNamespaceUrl); if (!String.IsNullOrEmpty(m_id)) objectElement.SetAttribute("Id", m_id); if (!String.IsNullOrEmpty(m_mimeType)) objectElement.SetAttribute("MimeType", m_mimeType); if (!String.IsNullOrEmpty(m_encoding)) objectElement.SetAttribute("Encoding", m_encoding); if (m_elData != null) { foreach (XmlNode node in m_elData) { objectElement.AppendChild(document.ImportNode(node, true)); } } return objectElement; } public void LoadXml (XmlElement value) { if (value == null) throw new ArgumentNullException("value"); m_id = Utils.GetAttribute(value, "Id", SignedXml.XmlDsigNamespaceUrl); m_mimeType = Utils.GetAttribute(value, "MimeType", SignedXml.XmlDsigNamespaceUrl); m_encoding = Utils.GetAttribute(value, "Encoding", SignedXml.XmlDsigNamespaceUrl); foreach (XmlNode node in value.ChildNodes) { m_elData.Add(node); } // Save away the cached value m_cachedXml = value; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // ==++== // // Copyright (c) Microsoft Corporation. All rights reserved. // // ==--== // // DataObject.cs // // 21 [....] 2000 // namespace System.Security.Cryptography.Xml { using System; using System.IO; using System.Xml; [System.Security.Permissions.HostProtection(MayLeakOnAbort = true)] public class DataObject { private string m_id; private string m_mimeType; private string m_encoding; private CanonicalXmlNodeList m_elData; private XmlElement m_cachedXml; // // public constructors // public DataObject () { m_cachedXml = null; m_elData = new CanonicalXmlNodeList(); } public DataObject (string id, string mimeType, string encoding, XmlElement data) { if (data == null) throw new ArgumentNullException("data"); m_id = id; m_mimeType = mimeType; m_encoding = encoding; m_elData = new CanonicalXmlNodeList(); m_elData.Add(data); m_cachedXml = null; } // // public properties // public string Id { get { return m_id; } set { m_id = value; m_cachedXml = null; } } public string MimeType { get { return m_mimeType; } set { m_mimeType = value; m_cachedXml = null; } } public string Encoding { get { return m_encoding; } set { m_encoding = value; m_cachedXml = null; } } public XmlNodeList Data { get { return m_elData; } set { if (value == null) throw new ArgumentNullException("value"); // Reset the node list m_elData = new CanonicalXmlNodeList(); foreach (XmlNode node in value) { m_elData.Add(node); } m_cachedXml = null; } } private bool CacheValid { get { return(m_cachedXml != null); } } // // public methods // public XmlElement GetXml() { if (CacheValid) return(m_cachedXml); XmlDocument document = new XmlDocument(); document.PreserveWhitespace = true; return GetXml(document); } internal XmlElement GetXml (XmlDocument document) { XmlElement objectElement = document.CreateElement("Object", SignedXml.XmlDsigNamespaceUrl); if (!String.IsNullOrEmpty(m_id)) objectElement.SetAttribute("Id", m_id); if (!String.IsNullOrEmpty(m_mimeType)) objectElement.SetAttribute("MimeType", m_mimeType); if (!String.IsNullOrEmpty(m_encoding)) objectElement.SetAttribute("Encoding", m_encoding); if (m_elData != null) { foreach (XmlNode node in m_elData) { objectElement.AppendChild(document.ImportNode(node, true)); } } return objectElement; } public void LoadXml (XmlElement value) { if (value == null) throw new ArgumentNullException("value"); m_id = Utils.GetAttribute(value, "Id", SignedXml.XmlDsigNamespaceUrl); m_mimeType = Utils.GetAttribute(value, "MimeType", SignedXml.XmlDsigNamespaceUrl); m_encoding = Utils.GetAttribute(value, "Encoding", SignedXml.XmlDsigNamespaceUrl); foreach (XmlNode node in value.ChildNodes) { m_elData.Add(node); } // Save away the cached value m_cachedXml = value; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- AmbiguousMatchException.cs
- ListItemCollection.cs
- HwndMouseInputProvider.cs
- XMLDiffLoader.cs
- NetworkAddressChange.cs
- UxThemeWrapper.cs
- CounterCreationData.cs
- FlagsAttribute.cs
- TextSearch.cs
- JsonFormatGeneratorStatics.cs
- UIElementCollection.cs
- ProfileSettings.cs
- httpserverutility.cs
- ReflectTypeDescriptionProvider.cs
- ToolTipAutomationPeer.cs
- HtmlInputSubmit.cs
- OrderingInfo.cs
- MdiWindowListItemConverter.cs
- EasingFunctionBase.cs
- SecurityDescriptor.cs
- Stream.cs
- AsyncCompletedEventArgs.cs
- SystemInformation.cs
- UnsafeNativeMethods.cs
- MenuCommands.cs
- DefaultValueConverter.cs
- UICuesEvent.cs
- DependentTransaction.cs
- RightsManagementManager.cs
- ThemeDirectoryCompiler.cs
- ReflectionTypeLoadException.cs
- ComponentDispatcher.cs
- Span.cs
- StringBuilder.cs
- ParallelLoopState.cs
- ToolStripContainer.cs
- SplitContainerDesigner.cs
- ZoneLinkButton.cs
- DllNotFoundException.cs
- EntitySqlQueryState.cs
- SQLGuid.cs
- DataGridViewCellConverter.cs
- XmlNamespaceDeclarationsAttribute.cs
- ClientSession.cs
- HttpCacheVary.cs
- SHA512.cs
- VisualBasicValue.cs
- SubMenuStyle.cs
- HMACMD5.cs
- RenderContext.cs
- CoreSwitches.cs
- MessageDecoder.cs
- NodeInfo.cs
- StrokeCollection.cs
- TextAdaptor.cs
- ADMembershipProvider.cs
- ObservableDictionary.cs
- recordstate.cs
- ElementsClipboardData.cs
- FormClosingEvent.cs
- ValidationSummary.cs
- LinkButton.cs
- CommandID.cs
- RegistryConfigurationProvider.cs
- ResourceContainerWrapper.cs
- AssemblyBuilder.cs
- WinCategoryAttribute.cs
- BehaviorDragDropEventArgs.cs
- IgnorePropertiesAttribute.cs
- SafeEventHandle.cs
- TimeSpanMinutesConverter.cs
- RuleConditionDialog.cs
- InstanceOwnerException.cs
- JpegBitmapEncoder.cs
- TouchesCapturedWithinProperty.cs
- CustomErrorsSection.cs
- CqlBlock.cs
- FolderLevelBuildProvider.cs
- RegexRunnerFactory.cs
- Rotation3D.cs
- ZipIORawDataFileBlock.cs
- ItemChangedEventArgs.cs
- HitTestDrawingContextWalker.cs
- HttpApplicationStateBase.cs
- FileDialogCustomPlacesCollection.cs
- AttachInfo.cs
- UrlPropertyAttribute.cs
- TableItemPattern.cs
- BitmapSource.cs
- TransformPattern.cs
- FileNotFoundException.cs
- Journaling.cs
- ChannelManagerService.cs
- XmlDownloadManager.cs
- Atom10FormatterFactory.cs
- UIServiceHelper.cs
- GridView.cs
- ResolveResponse.cs
- PresentationAppDomainManager.cs
- DataGridTable.cs