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
- _LazyAsyncResult.cs
- ExceptionRoutedEventArgs.cs
- CustomErrorsSectionWrapper.cs
- PenCursorManager.cs
- CompatibleComparer.cs
- SynchronizationContext.cs
- UnhandledExceptionEventArgs.cs
- PropertyValue.cs
- OrderedDictionaryStateHelper.cs
- ConfigurationLocation.cs
- MDIControlStrip.cs
- HwndMouseInputProvider.cs
- ToolStripItemRenderEventArgs.cs
- XPathException.cs
- SecurityKeyType.cs
- NonClientArea.cs
- SmtpFailedRecipientException.cs
- WebProxyScriptElement.cs
- DataColumnMappingCollection.cs
- Selection.cs
- SplitterEvent.cs
- SchemaTableOptionalColumn.cs
- SQLBytesStorage.cs
- Shape.cs
- RoleGroup.cs
- UserControlFileEditor.cs
- Stylesheet.cs
- COM2PictureConverter.cs
- UIElement3DAutomationPeer.cs
- ToolStripItemCollection.cs
- ObjectDataSourceDisposingEventArgs.cs
- TextRunTypographyProperties.cs
- CompoundFileStorageReference.cs
- XmlStringTable.cs
- SecurityElement.cs
- UnknownBitmapDecoder.cs
- ProtocolsConfigurationHandler.cs
- TextElementCollectionHelper.cs
- RuntimeArgumentHandle.cs
- CommentAction.cs
- SafePEFileHandle.cs
- wgx_exports.cs
- FormsAuthenticationUserCollection.cs
- LinqDataSource.cs
- FigureParagraph.cs
- COM2TypeInfoProcessor.cs
- SourceCollection.cs
- TypeDelegator.cs
- PenCursorManager.cs
- PageBuildProvider.cs
- ListViewTableCell.cs
- NativeMethods.cs
- Util.cs
- InputScope.cs
- TextFormatterHost.cs
- EventManager.cs
- EventHandlerService.cs
- LazyTextWriterCreator.cs
- Utils.cs
- DataListItem.cs
- Image.cs
- QueryContinueDragEvent.cs
- RectangleHotSpot.cs
- ForwardPositionQuery.cs
- GlobalizationAssembly.cs
- OutKeywords.cs
- IMembershipProvider.cs
- VersionedStream.cs
- DesignerHierarchicalDataSourceView.cs
- autovalidator.cs
- SchemaNotation.cs
- WebPartUserCapability.cs
- GradientBrush.cs
- EnumValAlphaComparer.cs
- TypeSystem.cs
- Parameter.cs
- SliderAutomationPeer.cs
- ProviderException.cs
- PackageDigitalSignatureManager.cs
- MediaSystem.cs
- TextSyndicationContent.cs
- KeyValuePair.cs
- InheritanceService.cs
- DocumentViewerConstants.cs
- Set.cs
- Transform.cs
- SQLBinary.cs
- HierarchicalDataSourceControl.cs
- XmlWriter.cs
- ReadOnlyDataSource.cs
- CoTaskMemHandle.cs
- OptimizerPatterns.cs
- HttpHeaderCollection.cs
- ToolStripHighContrastRenderer.cs
- IDQuery.cs
- ManagementException.cs
- InvalidCommandTreeException.cs
- DocumentEventArgs.cs
- CryptoConfig.cs
- SqlConnection.cs