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
- DictionaryGlobals.cs
- ErrorRuntimeConfig.cs
- PageRequestManager.cs
- FormViewPageEventArgs.cs
- TaskResultSetter.cs
- ResourceDescriptionAttribute.cs
- StatusBarPanel.cs
- ModuleBuilder.cs
- List.cs
- Collection.cs
- TrackingDataItemValue.cs
- TextContainerChangeEventArgs.cs
- UniqueConstraint.cs
- _ListenerRequestStream.cs
- OpenFileDialog.cs
- Registration.cs
- MetadataItem_Static.cs
- ServiceElement.cs
- DynamicResourceExtensionConverter.cs
- RelOps.cs
- XmlTextReaderImplHelpers.cs
- SqlProviderServices.cs
- DBSqlParserTable.cs
- FixedSOMImage.cs
- AnnotationService.cs
- NumberFormatter.cs
- Simplifier.cs
- EdmEntityTypeAttribute.cs
- TileBrush.cs
- TypeConverterHelper.cs
- MailWriter.cs
- ObjectSpanRewriter.cs
- safelinkcollection.cs
- ReturnEventArgs.cs
- StoreItemCollection.cs
- _OverlappedAsyncResult.cs
- ContentElement.cs
- EventRouteFactory.cs
- FixedSOMPageConstructor.cs
- Hex.cs
- CompilerResults.cs
- ArrayWithOffset.cs
- QueryResponse.cs
- SQLDecimal.cs
- TransformerTypeCollection.cs
- TemplateContainer.cs
- EdmFunctions.cs
- PartialList.cs
- FloaterParaClient.cs
- StrongTypingException.cs
- UdpTransportBindingElement.cs
- TrustManagerPromptUI.cs
- ALinqExpressionVisitor.cs
- PaintValueEventArgs.cs
- StatusBarDesigner.cs
- BindingListCollectionView.cs
- FullTextLine.cs
- CollectionBuilder.cs
- CallSiteOps.cs
- RequestCache.cs
- TextServicesProperty.cs
- DecodeHelper.cs
- XamlHostingConfiguration.cs
- HijriCalendar.cs
- RegisteredScript.cs
- SchemaTableColumn.cs
- AppDomainProtocolHandler.cs
- StringComparer.cs
- AesManaged.cs
- TemplateXamlParser.cs
- ScalarType.cs
- OperandQuery.cs
- CompoundFileDeflateTransform.cs
- CodePropertyReferenceExpression.cs
- peersecuritysettings.cs
- FtpWebResponse.cs
- CharacterMetrics.cs
- TcpServerChannel.cs
- ObjectConverter.cs
- XmlSchemaSimpleTypeList.cs
- LiteralControl.cs
- Geometry.cs
- MappedMetaModel.cs
- JoinCqlBlock.cs
- webclient.cs
- StringExpressionSet.cs
- CatalogPart.cs
- MulticastDelegate.cs
- ContainerAction.cs
- EarlyBoundInfo.cs
- EUCJPEncoding.cs
- XMLUtil.cs
- PageTheme.cs
- ECDiffieHellman.cs
- PagedDataSource.cs
- PageClientProxyGenerator.cs
- DataStreamFromComStream.cs
- ResXResourceReader.cs
- SynchronizationContext.cs
- SubqueryTrackingVisitor.cs