Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Client / System / IdentityModel / Selectors / PolicyChain.cs / 1 / PolicyChain.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.IdentityModel.Selectors { using System; using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; using System.Text; using System.Xml; // // For common // using Microsoft.InfoCards; // // Summary: // This class wraps and manages the lifetime of an array of PolicyElements that are to be Marshaled to // native memory. // internal class PolicyChain : IDisposable { HGlobalSafeHandle m_nativeChain; InternalPolicyElement[] m_chain; public int Length { get { return m_chain.Length; } } public PolicyChain( CardSpacePolicyElement[ ] elements ) { int length = elements.Length; m_chain = new InternalPolicyElement[ length ]; for( int i = 0; i < length; i++ ) { m_chain[ i ] = new InternalPolicyElement( elements[ i ] ); } } public SafeHandle DoMarshal() { if( null == m_nativeChain ) { int elementSize = InternalPolicyElement.Size; int chainLength = m_chain.Length; m_nativeChain = HGlobalSafeHandle.Construct( chainLength * elementSize ); IntPtr pos = m_nativeChain.DangerousGetHandle(); foreach( InternalPolicyElement element in m_chain ) { element.DoMarshal( pos ); unsafe { // // All this just to do pos += elementSize // pos = new IntPtr( (long)( ( (ulong) pos.ToPointer() ) + (ulong) elementSize ) ); } } } return m_nativeChain; } public void Dispose() { Dispose( true ); } ~PolicyChain() { Dispose( false ); } private void Dispose( bool disposing ) { if( disposing ) { GC.SuppressFinalize( this ); } if( null != m_chain ) { foreach( InternalPolicyElement element in m_chain ) { if( null != element ) { element.Dispose(); } } m_chain = null; } if( null != m_nativeChain ) { m_nativeChain.Dispose(); } } } } // 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
- ReadOnlyHierarchicalDataSourceView.cs
- TypeSystemProvider.cs
- TemplateEditingFrame.cs
- WebHeaderCollection.cs
- QueryContinueDragEventArgs.cs
- TypeKeyValue.cs
- HtmlInputSubmit.cs
- OpenFileDialog.cs
- HMACSHA256.cs
- PhonemeEventArgs.cs
- PropagatorResult.cs
- ActivityTrace.cs
- TemplateControlCodeDomTreeGenerator.cs
- FileSystemInfo.cs
- ClaimComparer.cs
- AuthenticatedStream.cs
- CategoryGridEntry.cs
- CustomAssemblyResolver.cs
- XmlDataSourceView.cs
- DesignerLinkAdapter.cs
- ByteKeyFrameCollection.cs
- AtomPub10CategoriesDocumentFormatter.cs
- StylusPointProperty.cs
- VectorCollectionValueSerializer.cs
- oledbmetadatacolumnnames.cs
- WebPartCatalogCloseVerb.cs
- SqlMethods.cs
- VolatileEnlistmentMultiplexing.cs
- FixedPage.cs
- CacheDependency.cs
- SelectionItemPattern.cs
- EditingCoordinator.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- WebPartEditorOkVerb.cs
- ReadWriteSpinLock.cs
- Size.cs
- FontClient.cs
- OracleNumber.cs
- PresentationAppDomainManager.cs
- ConversionHelper.cs
- Evidence.cs
- SerializationTrace.cs
- CallSiteBinder.cs
- CodeAttributeArgument.cs
- CommandHelpers.cs
- UInt64Converter.cs
- BamlLocalizer.cs
- HexParser.cs
- ArrayTypeMismatchException.cs
- SemanticBasicElement.cs
- SiteMapDataSourceView.cs
- ArrangedElement.cs
- DurationConverter.cs
- EventWaitHandle.cs
- OuterGlowBitmapEffect.cs
- GridViewDeletedEventArgs.cs
- SelectingProviderEventArgs.cs
- keycontainerpermission.cs
- EdmProperty.cs
- TabOrder.cs
- NotifyParentPropertyAttribute.cs
- ILGenerator.cs
- CommandEventArgs.cs
- SiteMapDesignerDataSourceView.cs
- NavigationService.cs
- SchemaImporterExtension.cs
- SectionXmlInfo.cs
- ClientRuntimeConfig.cs
- NavigationPropertyEmitter.cs
- SqlColumnizer.cs
- Certificate.cs
- SourceItem.cs
- RouteItem.cs
- FileBasedResourceGroveler.cs
- XmlMtomReader.cs
- CompoundFileIOPermission.cs
- SQLRoleProvider.cs
- ProfilePropertySettingsCollection.cs
- SchemaEntity.cs
- TemplateBamlRecordReader.cs
- Thickness.cs
- ColumnWidthChangingEvent.cs
- DataGridItemAttachedStorage.cs
- TextFormatterHost.cs
- PtsHost.cs
- HyperLinkField.cs
- RunWorkerCompletedEventArgs.cs
- EncryptedPackageFilter.cs
- ToolboxComponentsCreatedEventArgs.cs
- PopupEventArgs.cs
- CreatingCookieEventArgs.cs
- PreloadedPackages.cs
- SubclassTypeValidator.cs
- DataGridViewTextBoxEditingControl.cs
- ContextTokenTypeConverter.cs
- TriggerCollection.cs
- TablePatternIdentifiers.cs
- Win32SafeHandles.cs
- BamlCollectionHolder.cs
- PathTooLongException.cs