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
- DictionarySectionHandler.cs
- PostBackTrigger.cs
- XPathMultyIterator.cs
- CssStyleCollection.cs
- TemplateParser.cs
- DataGridViewLinkCell.cs
- FormsAuthenticationModule.cs
- DesignTimeDataBinding.cs
- ScaleTransform3D.cs
- MenuCommandsChangedEventArgs.cs
- CodeTypeReference.cs
- ConfigXmlSignificantWhitespace.cs
- DataGridViewLinkColumn.cs
- SqlTrackingQuery.cs
- DefaultObjectMappingItemCollection.cs
- IsolatedStorage.cs
- AuthenticationService.cs
- WorkflowOperationBehavior.cs
- _FtpDataStream.cs
- JapaneseCalendar.cs
- WeakHashtable.cs
- SHA384Managed.cs
- SiteOfOriginPart.cs
- SafePointer.cs
- COM2PropertyDescriptor.cs
- WmlMobileTextWriter.cs
- ScriptingRoleServiceSection.cs
- HMACMD5.cs
- BevelBitmapEffect.cs
- UrlMappingCollection.cs
- EditingMode.cs
- ConstantSlot.cs
- ProviderCollection.cs
- DataBinding.cs
- DesignerActionListCollection.cs
- JavascriptCallbackMessageInspector.cs
- WebPartConnectionsCancelEventArgs.cs
- GridItemPattern.cs
- DataListComponentEditor.cs
- EdmComplexTypeAttribute.cs
- HotSpot.cs
- SecurityStandardsManager.cs
- IISUnsafeMethods.cs
- SrgsGrammarCompiler.cs
- Point3DIndependentAnimationStorage.cs
- TypeReference.cs
- WebControlsSection.cs
- ContentElementAutomationPeer.cs
- LinearGradientBrush.cs
- SourceSwitch.cs
- ConnectionPoolRegistry.cs
- SecurityException.cs
- SmuggledIUnknown.cs
- FontFamilyConverter.cs
- TimeSpanSecondsConverter.cs
- ResolveResponseInfo.cs
- GeneralTransform3D.cs
- ExceptionUtil.cs
- SecurityTokenProviderContainer.cs
- SetStateDesigner.cs
- TdsParserStaticMethods.cs
- Clause.cs
- CannotUnloadAppDomainException.cs
- contentDescriptor.cs
- Delay.cs
- XmlILCommand.cs
- PeerNameRegistration.cs
- ItemCheckedEvent.cs
- SqlFormatter.cs
- AttributeCollection.cs
- OleDbStruct.cs
- CodeNamespaceImportCollection.cs
- EventSourceCreationData.cs
- CngProperty.cs
- MinimizableAttributeTypeConverter.cs
- ConditionalExpression.cs
- MaskedTextBox.cs
- invalidudtexception.cs
- IconBitmapDecoder.cs
- ClientBuildManager.cs
- ZoomPercentageConverter.cs
- Pts.cs
- DBSchemaRow.cs
- PlainXmlDeserializer.cs
- MessageBox.cs
- InvokeGenerator.cs
- SystemIcmpV6Statistics.cs
- TabletDevice.cs
- ChineseLunisolarCalendar.cs
- ProfileServiceManager.cs
- QueryResultOp.cs
- DataViewManager.cs
- InputReportEventArgs.cs
- HwndSubclass.cs
- CodeDomLoader.cs
- ControlParameter.cs
- EntityCommandExecutionException.cs
- LineServicesRun.cs
- FullTextState.cs
- GPStream.cs