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
- HwndSourceKeyboardInputSite.cs
- SelectedDatesCollection.cs
- OverrideMode.cs
- IPipelineRuntime.cs
- TrackingServices.cs
- OdbcConnectionStringbuilder.cs
- StaticTextPointer.cs
- MethodBuilder.cs
- GregorianCalendarHelper.cs
- SqlServices.cs
- WebConfigurationManager.cs
- ToggleProviderWrapper.cs
- ExpressionParser.cs
- MachineKeyConverter.cs
- MediaSystem.cs
- PointKeyFrameCollection.cs
- LocatorBase.cs
- TableItemProviderWrapper.cs
- BinaryOperationBinder.cs
- TypeExtension.cs
- IriParsingElement.cs
- PersistenceTypeAttribute.cs
- IApplicationTrustManager.cs
- WinFormsUtils.cs
- SByteStorage.cs
- FontCacheLogic.cs
- InnerItemCollectionView.cs
- SessionPageStateSection.cs
- GlyphInfoList.cs
- SQLInt32Storage.cs
- DataRecordObjectView.cs
- XmlAnyAttributeAttribute.cs
- PerfService.cs
- ToolStripItemCollection.cs
- ProbeMatchesMessageCD1.cs
- XmlSchemaSimpleTypeUnion.cs
- ParallelTimeline.cs
- BookmarkScope.cs
- SemanticResolver.cs
- AppDomainFactory.cs
- FlowNode.cs
- Stylesheet.cs
- RenderOptions.cs
- shaperfactoryquerycachekey.cs
- PackageDigitalSignatureManager.cs
- ErrorCodes.cs
- XmlDocumentSerializer.cs
- BypassElement.cs
- DiscriminatorMap.cs
- MailSettingsSection.cs
- SingleConverter.cs
- Span.cs
- FileSystemEventArgs.cs
- XmlDataImplementation.cs
- PropertyOverridesTypeEditor.cs
- PageClientProxyGenerator.cs
- TokenBasedSetEnumerator.cs
- RawStylusInputCustomData.cs
- GridItemCollection.cs
- CookielessHelper.cs
- Int32AnimationUsingKeyFrames.cs
- COM2IDispatchConverter.cs
- DateTimeOffsetAdapter.cs
- InputReferenceExpression.cs
- SQLDouble.cs
- CategoryGridEntry.cs
- ColumnWidthChangedEvent.cs
- ListMarkerLine.cs
- FontFaceLayoutInfo.cs
- CheckableControlBaseAdapter.cs
- JsonFormatGeneratorStatics.cs
- PartManifestEntry.cs
- BinaryConverter.cs
- ScrollChrome.cs
- PageStatePersister.cs
- RijndaelManaged.cs
- Int32CollectionConverter.cs
- AvTraceFormat.cs
- XmlSchemaImport.cs
- SqlCaseSimplifier.cs
- ConnectionStringsSection.cs
- AudienceUriMode.cs
- AlignmentYValidation.cs
- FileStream.cs
- Dynamic.cs
- AutomationPatternInfo.cs
- ScriptManagerProxy.cs
- StaticContext.cs
- WinEventHandler.cs
- UInt16.cs
- VirtualizedCellInfoCollection.cs
- UriTemplateTableMatchCandidate.cs
- XmlNavigatorFilter.cs
- RequestQueryProcessor.cs
- GenericPrincipal.cs
- DataColumnMappingCollection.cs
- StoreItemCollection.Loader.cs
- NewArrayExpression.cs
- FileReader.cs
- DocumentPageView.cs