Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / Serialization / System / Runtime / Serialization / GenericParameterDataContract.cs / 1 / GenericParameterDataContract.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.Runtime.Serialization { using System; using System.Collections.Generic; using System.Security; internal sealed class GenericParameterDataContract : DataContract { ////// Critical - holds instance of CriticalHelper which keeps state that is cached statically for serialization. /// Static fields are marked SecurityCritical or readonly to prevent /// data from being modified or leaked to other components in appdomain. /// [SecurityCritical] GenericParameterDataContractCriticalHelper helper; ////// Critical - initializes SecurityCritical field 'helper' /// Safe - doesn't leak anything /// [SecurityCritical, SecurityTreatAsSafe] internal GenericParameterDataContract(Type type) : base(new GenericParameterDataContractCriticalHelper(type)) { helper = base.Helper as GenericParameterDataContractCriticalHelper; } internal int ParameterPosition { ////// Critical - fetches the critical ParameterPosition property /// Safe - ParameterPosition only needs to be protected for write /// [SecurityCritical, SecurityTreatAsSafe] get { return helper.ParameterPosition; } } internal override bool IsBuiltInDataContract { get { return true; } } ////// Critical - holds state used for deaing with generic parameters. /// since the data is cached statically, we lock down access to it. /// [SecurityCritical(SecurityCriticalScope.Everything)] class GenericParameterDataContractCriticalHelper : DataContract.DataContractCriticalHelper { int parameterPosition; internal GenericParameterDataContractCriticalHelper(Type type) : base(type) { SetDataContractName(DataContract.GetStableName(type)); this.parameterPosition = type.GenericParameterPosition; } internal int ParameterPosition { get { return parameterPosition; } } } internal override DataContract BindGenericParameters(DataContract[] paramContracts, DictionaryboundContracts) { return paramContracts[ParameterPosition]; } } } // 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
- DockProviderWrapper.cs
- TextBoxView.cs
- SecurityDescriptor.cs
- AutoGeneratedField.cs
- WindowsSpinner.cs
- PeerInvitationResponse.cs
- MenuItemBinding.cs
- DbReferenceCollection.cs
- PageParserFilter.cs
- PhysicalAddress.cs
- TextServicesHost.cs
- XmlWhitespace.cs
- UIElementCollection.cs
- PersistenceParticipant.cs
- NamespaceImport.cs
- PaperSource.cs
- XmlArrayItemAttribute.cs
- DoubleKeyFrameCollection.cs
- StaticResourceExtension.cs
- OrderingInfo.cs
- Types.cs
- base64Transforms.cs
- CompilerErrorCollection.cs
- WindowsScroll.cs
- Page.cs
- WebPartConnection.cs
- FixedTextContainer.cs
- EDesignUtil.cs
- DataGridViewTopLeftHeaderCell.cs
- PngBitmapEncoder.cs
- MbpInfo.cs
- ZoomPercentageConverter.cs
- TraceContextEventArgs.cs
- ContentFileHelper.cs
- ManagedCodeMarkers.cs
- ToolStripSystemRenderer.cs
- Menu.cs
- TypeInformation.cs
- WrappedReader.cs
- SqlCommandAsyncResult.cs
- MetadataArtifactLoaderComposite.cs
- DragDropHelper.cs
- ProcessModelInfo.cs
- DataStreams.cs
- AnonymousIdentificationSection.cs
- OrderedDictionary.cs
- UntrustedRecipientException.cs
- FrugalList.cs
- LocatorGroup.cs
- KnowledgeBase.cs
- WorkflowLayouts.cs
- MessageAction.cs
- IsolatedStorageException.cs
- SqlCaseSimplifier.cs
- Form.cs
- ComponentCommands.cs
- SmtpNegotiateAuthenticationModule.cs
- BamlBinaryReader.cs
- AlignmentYValidation.cs
- ContactManager.cs
- WebPartZone.cs
- KeyMatchBuilder.cs
- PersonalizationProviderCollection.cs
- SimpleExpression.cs
- Style.cs
- GPStream.cs
- XmlImplementation.cs
- ScriptHandlerFactory.cs
- RadioButtonList.cs
- AutoGeneratedFieldProperties.cs
- ExpressionConverter.cs
- EncoderExceptionFallback.cs
- DataGridViewColumnStateChangedEventArgs.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- UnsafeNativeMethods.cs
- LayoutTable.cs
- InstanceData.cs
- PeerCollaboration.cs
- Win32.cs
- RoutedEvent.cs
- DataControlField.cs
- DetailsViewPagerRow.cs
- ColumnClickEvent.cs
- PenContexts.cs
- BigInt.cs
- Empty.cs
- InternalBufferOverflowException.cs
- CommonDialog.cs
- sitestring.cs
- ToolStripPanelRow.cs
- ListViewCommandEventArgs.cs
- DetailsViewModeEventArgs.cs
- GeneralTransform3DTo2D.cs
- ProfilePropertySettings.cs
- DataGridSortingEventArgs.cs
- XamlSerializationHelper.cs
- ScalarType.cs
- WindowsStartMenu.cs
- RunInstallerAttribute.cs
- BaseDataList.cs