Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Base / MS / Internal / IO / Packaging / PartManifestEntry.cs / 1305600 / PartManifestEntry.cs
//------------------------------------------------------------------------------ // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: // Simple struct for maintaining information of a Part found in an Xml signature manifest // // History: // 02/07/2005: BruceMac: Initial Implementation // 11/30/2005: BruceMac: Security Mitigations // //----------------------------------------------------------------------------- using System; using System.Diagnostics; using System.Collections.Generic; using System.Security.Cryptography; using System.Security.Cryptography.Xml; using System.Xml; using System.Windows; using System.IO.Packaging; using MS.Internal; namespace MS.Internal.IO.Packaging { ////// Represents parsed value for a single Part/Relationship entry in the Manifest /// internal struct PartManifestEntry { //----------------------------------------------------- // // Internal Properties // //----------------------------------------------------- // is this a relationship entry? internal bool IsRelationshipEntry { get { return _relationshipSelectors != null; } } internal Uri Uri { get { return _uri; } } internal ContentType ContentType { get { return _contentType; } } internal String HashAlgorithm { get { return _hashAlgorithm; } } internal String HashValue { get { return _hashValue; } } internal ListTransforms { get { return _transforms; } } internal List RelationshipSelectors { get { return _relationshipSelectors; } } // null if Part entry internal Uri OwningPartUri // only valid if IsRelationshipEntry { get { Debug.Assert(_owningPartUri != null, "Logic error: OwningPart is null on a non-Relationship entry"); return _owningPartUri; } } //------------------------------------------------------ // // Internal Methods // //----------------------------------------------------- /// /// Constructor /// /// part uri of part in question /// type of part /// digest method /// value of the hash calculation extracted from the signature Xml /// ordered transform list - may be null /// may be null but can never be empty internal PartManifestEntry(Uri uri, ContentType contentType, String hashAlgorithm, String hashValue, Listtransforms, List relationshipSelectors) { Invariant.Assert(uri != null); Invariant.Assert(contentType != null); Invariant.Assert(hashAlgorithm != null); _uri = uri; _contentType = contentType; _hashAlgorithm = hashAlgorithm; _hashValue = hashValue; _transforms = transforms; _relationshipSelectors = relationshipSelectors; _owningPartUri = null; if (_relationshipSelectors != null) { Invariant.Assert(relationshipSelectors.Count > 0); #if DEBUG Invariant.Assert(DoAllSelectorsHaveSameOwningPart(relationshipSelectors), "All relationship selectors should have same owningPart for a given part manifest"); #endif //Get owning Part uri from one of the relationship selectors _owningPartUri = relationshipSelectors[0].SourceUri; } } #if DEBUG private bool DoAllSelectorsHaveSameOwningPart(IEnumerable relationshipSelectors) { Uri owningPartUri = null; foreach (PackageRelationshipSelector selector in relationshipSelectors) { if (owningPartUri == null) { owningPartUri = selector.SourceUri; } else if (Uri.Compare(owningPartUri, selector.SourceUri, UriComponents.SerializationInfoString, UriFormat.UriEscaped, StringComparison.Ordinal) != 0 ) return false; } return true; } #endif //------------------------------------------------------ // // Private Fields // //------------------------------------------------------ private Uri _owningPartUri; // owing part if this is a Relationship Uri private Uri _uri; private ContentType _contentType; private String _hashAlgorithm; private String _hashValue; private List _transforms; private List _relationshipSelectors; // null if this is a Part } } // 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
- FilteredSchemaElementLookUpTable.cs
- RegistryPermission.cs
- httpstaticobjectscollection.cs
- UserControl.cs
- RelatedEnd.cs
- PaintValueEventArgs.cs
- DataGridViewToolTip.cs
- AssociationTypeEmitter.cs
- CodeGenerator.cs
- FactoryMaker.cs
- Rotation3DKeyFrameCollection.cs
- NonNullItemCollection.cs
- ServerValidateEventArgs.cs
- ProtocolsSection.cs
- String.cs
- GatewayDefinition.cs
- PersonalizableAttribute.cs
- HostedTcpTransportManager.cs
- WmlPanelAdapter.cs
- Parser.cs
- MetadataException.cs
- SqlInternalConnectionTds.cs
- Debug.cs
- sqlmetadatafactory.cs
- DBCommandBuilder.cs
- XPathBuilder.cs
- RecognitionResult.cs
- DropShadowEffect.cs
- WsrmTraceRecord.cs
- URLString.cs
- MetadataUtilsSmi.cs
- Point3DCollectionConverter.cs
- NotificationContext.cs
- ExpressionStringBuilder.cs
- AsymmetricSignatureDeformatter.cs
- ClientTargetSection.cs
- WindowsScrollBarBits.cs
- ProfileService.cs
- RemotingSurrogateSelector.cs
- HyperlinkAutomationPeer.cs
- DbExpressionVisitor_TResultType.cs
- CharAnimationUsingKeyFrames.cs
- MediaTimeline.cs
- StrokeNodeOperations.cs
- NativeMethods.cs
- Dispatcher.cs
- WriteFileContext.cs
- Expressions.cs
- WindowsScrollBar.cs
- CorrelationToken.cs
- ZipFileInfo.cs
- SamlDelegatingWriter.cs
- ScaleTransform.cs
- DPTypeDescriptorContext.cs
- HyperLink.cs
- SamlSecurityToken.cs
- ReturnEventArgs.cs
- ItemsChangedEventArgs.cs
- SqlBuilder.cs
- ReceiveErrorHandling.cs
- DesigntimeLicenseContext.cs
- _CookieModule.cs
- SiteMapNodeCollection.cs
- XmlEntityReference.cs
- OutArgumentConverter.cs
- MethodBuilder.cs
- StubHelpers.cs
- TableAutomationPeer.cs
- RoleBoolean.cs
- OdbcEnvironmentHandle.cs
- EncryptedType.cs
- UnauthorizedWebPart.cs
- AlgoModule.cs
- FlowDocumentReader.cs
- Stroke2.cs
- MobileRedirect.cs
- ImpersonateTokenRef.cs
- ScrollContentPresenter.cs
- Page.cs
- Image.cs
- WindowsServiceCredential.cs
- ProfilePropertySettings.cs
- SerializationStore.cs
- ToolStripEditorManager.cs
- ExceptionHandler.cs
- JsonWriterDelegator.cs
- LinkUtilities.cs
- TabControlCancelEvent.cs
- ZoneLinkButton.cs
- AQNBuilder.cs
- FileDialog.cs
- SizeConverter.cs
- ellipse.cs
- Coordinator.cs
- ProfileSettings.cs
- XamlReader.cs
- BitmapScalingModeValidation.cs
- Utilities.cs
- CacheOutputQuery.cs
- DataGridViewComboBoxCell.cs