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
- HScrollProperties.cs
- SortQueryOperator.cs
- DbCommandDefinition.cs
- OverrideMode.cs
- HttpCacheParams.cs
- SuppressIldasmAttribute.cs
- _MultipleConnectAsync.cs
- StringUtil.cs
- ISAPIApplicationHost.cs
- XmlHierarchicalEnumerable.cs
- OracleConnectionStringBuilder.cs
- Expression.cs
- SafeSecurityHelper.cs
- OdbcEnvironmentHandle.cs
- InternalControlCollection.cs
- NativeMethods.cs
- ModulesEntry.cs
- ListChangedEventArgs.cs
- PageEventArgs.cs
- WebDescriptionAttribute.cs
- DataGridViewCellStyle.cs
- SqlColumnizer.cs
- StrongNameKeyPair.cs
- SafeProcessHandle.cs
- NativeCppClassAttribute.cs
- XmlText.cs
- DispatcherSynchronizationContext.cs
- CodeFieldReferenceExpression.cs
- NamedPipeTransportSecurity.cs
- BitStack.cs
- TimeSpanConverter.cs
- EventBookmark.cs
- FixedSOMSemanticBox.cs
- DefaultValueConverter.cs
- PrintPreviewControl.cs
- WebServiceHandlerFactory.cs
- WebServiceFaultDesigner.cs
- MenuItemStyleCollection.cs
- CharUnicodeInfo.cs
- ByteStack.cs
- NeedSkipTokenVisitor.cs
- EntityTransaction.cs
- PersistenceMetadataNamespace.cs
- WebRequest.cs
- AnnotationResourceCollection.cs
- LinearKeyFrames.cs
- SHA384Managed.cs
- RadioButtonPopupAdapter.cs
- ModelItemExtensions.cs
- Utility.cs
- StructuredTypeEmitter.cs
- XamlSerializationHelper.cs
- XmlDataSourceView.cs
- SiblingIterators.cs
- TreeWalker.cs
- InvalidCastException.cs
- PaperSource.cs
- AuthenticationService.cs
- ClientOptions.cs
- MonthChangedEventArgs.cs
- RegexWriter.cs
- User.cs
- MatrixCamera.cs
- MetaModel.cs
- TimersDescriptionAttribute.cs
- DetailsViewRowCollection.cs
- OleDbConnectionFactory.cs
- FixedDocument.cs
- FormatConvertedBitmap.cs
- Library.cs
- ImageField.cs
- NameNode.cs
- CodeGenerationManager.cs
- Confirm.cs
- ComponentDispatcherThread.cs
- FieldNameLookup.cs
- NativeObjectSecurity.cs
- CategoryGridEntry.cs
- NetTcpBindingCollectionElement.cs
- EndpointInfo.cs
- DataError.cs
- RowVisual.cs
- WinEventHandler.cs
- RawAppCommandInputReport.cs
- MessageRpc.cs
- FixedBufferAttribute.cs
- SqlProviderServices.cs
- Size3D.cs
- XmlIlTypeHelper.cs
- ProjectionCamera.cs
- ToolStripItemImageRenderEventArgs.cs
- CatalogPart.cs
- XmlSerializerAssemblyAttribute.cs
- InvalidCardException.cs
- FileInfo.cs
- IsolatedStorage.cs
- ConfigsHelper.cs
- DesignTimeParseData.cs
- DataGridViewComboBoxColumn.cs
- XmlChildEnumerator.cs