Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / infocard / Client / System / IdentityModel / Selectors / PolicyChain.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- QuadraticBezierSegment.cs
- BlobPersonalizationState.cs
- MobileCategoryAttribute.cs
- TextEffectResolver.cs
- EntityViewGenerator.cs
- ProjectionRewriter.cs
- XamlStyleSerializer.cs
- MexBindingBindingCollectionElement.cs
- VSWCFServiceContractGenerator.cs
- UserControlAutomationPeer.cs
- MouseActionValueSerializer.cs
- ThreadStaticAttribute.cs
- _AutoWebProxyScriptEngine.cs
- FunctionUpdateCommand.cs
- ScrollEventArgs.cs
- __ConsoleStream.cs
- InlineCollection.cs
- DesignerDataStoredProcedure.cs
- BoundColumn.cs
- BooleanFunctions.cs
- TableLayoutStyleCollection.cs
- Schema.cs
- GridLength.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- UrlAuthorizationModule.cs
- SqlReorderer.cs
- DbConnectionStringBuilder.cs
- CodeAttributeDeclarationCollection.cs
- ParsedAttributeCollection.cs
- ShaderEffect.cs
- ScriptResourceAttribute.cs
- Logging.cs
- HttpDebugHandler.cs
- DictionaryContent.cs
- DurableTimerExtension.cs
- WebPartDisplayModeCancelEventArgs.cs
- CellNormalizer.cs
- SafeRightsManagementSessionHandle.cs
- MessageSmuggler.cs
- Header.cs
- WsatStrings.cs
- LogRecordSequence.cs
- ItemMap.cs
- TemplateBindingExpressionConverter.cs
- HtmlGenericControl.cs
- SqlTriggerContext.cs
- TextRange.cs
- TranslateTransform3D.cs
- DataSourceView.cs
- PropertyGroupDescription.cs
- UserCancellationException.cs
- ArgumentDirectionHelper.cs
- QilName.cs
- PartialTrustVisibleAssemblyCollection.cs
- ReadOnlyDataSource.cs
- SystemNetworkInterface.cs
- LayoutTableCell.cs
- WebSysDisplayNameAttribute.cs
- ScalarType.cs
- UnlockInstanceAsyncResult.cs
- UnsafeNativeMethods.cs
- ChameleonKey.cs
- HtmlInputCheckBox.cs
- TextCollapsingProperties.cs
- NumericUpDownAccelerationCollection.cs
- Point3DCollection.cs
- DataSourceSelectArguments.cs
- SimpleTypeResolver.cs
- ReceiveCompletedEventArgs.cs
- StrokeCollectionDefaultValueFactory.cs
- TypeReference.cs
- SelectorAutomationPeer.cs
- MouseEventArgs.cs
- ModifyActivitiesPropertyDescriptor.cs
- NamespaceEmitter.cs
- WebPartDisplayModeEventArgs.cs
- CompositeDispatchFormatter.cs
- ImageButton.cs
- SplashScreen.cs
- RtType.cs
- ApplicationDirectoryMembershipCondition.cs
- Utilities.cs
- ReadOnlyDictionary.cs
- XAMLParseException.cs
- WindowsAuthenticationEventArgs.cs
- Rect3DConverter.cs
- ToolStripItemRenderEventArgs.cs
- UriTemplate.cs
- EUCJPEncoding.cs
- ListControlActionList.cs
- SR.cs
- OrthographicCamera.cs
- ContextMenu.cs
- EventLogger.cs
- TextBoxAutomationPeer.cs
- IntPtr.cs
- GeneratedCodeAttribute.cs
- ServiceOperationInvoker.cs
- sapiproxy.cs
- ScrollItemPattern.cs