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
- BasicHttpBindingElement.cs
- MetadataPropertyCollection.cs
- AxisAngleRotation3D.cs
- SinglePageViewer.cs
- ChameleonKey.cs
- DesignerTransaction.cs
- WSHttpBinding.cs
- RegistrySecurity.cs
- ThreadAbortException.cs
- DeflateStream.cs
- StringValueSerializer.cs
- ThemeableAttribute.cs
- UITypeEditors.cs
- Splitter.cs
- TriggerActionCollection.cs
- IntSecurity.cs
- GeometryModel3D.cs
- SecurityPolicySection.cs
- SystemIcons.cs
- TypedTableHandler.cs
- WorkflowServiceOperationListItem.cs
- LookupBindingPropertiesAttribute.cs
- AttributeUsageAttribute.cs
- PseudoWebRequest.cs
- TextStore.cs
- EventTrigger.cs
- _SslStream.cs
- XPathNavigator.cs
- HttpHandlerAction.cs
- MDIClient.cs
- MenuItemStyleCollection.cs
- Visual.cs
- ImageFormatConverter.cs
- FixedDocumentSequencePaginator.cs
- ChangeProcessor.cs
- HttpWebResponse.cs
- StateBag.cs
- PersonalizationDictionary.cs
- HebrewCalendar.cs
- ServiceDeploymentInfo.cs
- CounterCreationData.cs
- ConfigsHelper.cs
- GetLastErrorDetailsRequest.cs
- XmlSerializerNamespaces.cs
- FixUp.cs
- MergablePropertyAttribute.cs
- MarkupCompiler.cs
- ResumeStoryboard.cs
- DesignerActionUIService.cs
- ShaderRenderModeValidation.cs
- SafeFileMappingHandle.cs
- RSAPKCS1SignatureDeformatter.cs
- AttributeAction.cs
- TargetException.cs
- XpsFixedDocumentReaderWriter.cs
- Types.cs
- TypeConstant.cs
- SupportsEventValidationAttribute.cs
- RequestCacheEntry.cs
- BitmapDecoder.cs
- CapabilitiesSection.cs
- SettingsSection.cs
- NamespaceExpr.cs
- webclient.cs
- HttpContextServiceHost.cs
- CultureInfoConverter.cs
- FaultBookmark.cs
- Util.cs
- QueryValue.cs
- DiagnosticsConfigurationHandler.cs
- LongValidatorAttribute.cs
- CompositionTarget.cs
- DataGridViewCellPaintingEventArgs.cs
- MouseButton.cs
- MembershipSection.cs
- StylusShape.cs
- ColorMap.cs
- CodeIdentifiers.cs
- PeerName.cs
- ComponentCollection.cs
- DocumentPageViewAutomationPeer.cs
- TypePropertyEditor.cs
- RenderingEventArgs.cs
- TextSelectionProcessor.cs
- EditableLabelControl.cs
- RequestUriProcessor.cs
- CardSpaceShim.cs
- EntityDesignerBuildProvider.cs
- CompareValidator.cs
- __ConsoleStream.cs
- DetailsViewPageEventArgs.cs
- RoleManagerEventArgs.cs
- LocalizationParserHooks.cs
- RichTextBox.cs
- CurrencyWrapper.cs
- ExpressionServices.cs
- ArgumentNullException.cs
- AnnouncementClient.cs
- PageSetupDialog.cs
- DataGridAutoFormat.cs