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
- MethodAccessException.cs
- MobileErrorInfo.cs
- codemethodreferenceexpression.cs
- DispatcherSynchronizationContext.cs
- ListView.cs
- ClickablePoint.cs
- DataViewManagerListItemTypeDescriptor.cs
- ObjectViewEntityCollectionData.cs
- SqlMethodAttribute.cs
- FocusTracker.cs
- InitializerFacet.cs
- DurationConverter.cs
- MediaTimeline.cs
- Normalization.cs
- PageTheme.cs
- shaperfactoryquerycacheentry.cs
- DataColumnMappingCollection.cs
- DataBoundControl.cs
- DependencyPropertyChangedEventArgs.cs
- PrimitiveXmlSerializers.cs
- TraceData.cs
- PathParser.cs
- Point4DValueSerializer.cs
- EntityContainerRelationshipSetEnd.cs
- DefaultTraceListener.cs
- Guid.cs
- HttpPostedFile.cs
- LinkLabelLinkClickedEvent.cs
- WaitHandleCannotBeOpenedException.cs
- MSAAEventDispatcher.cs
- SpecialNameAttribute.cs
- XmlTextReaderImpl.cs
- ListChangedEventArgs.cs
- ColumnMap.cs
- BitmapEffectDrawing.cs
- AsyncOperationManager.cs
- XslNumber.cs
- _AutoWebProxyScriptEngine.cs
- ThreadAttributes.cs
- KernelTypeValidation.cs
- InternalPermissions.cs
- AstTree.cs
- SecurityHeaderElementInferenceEngine.cs
- RectangleF.cs
- BinaryObjectWriter.cs
- TextBoxRenderer.cs
- PersistenceProviderFactory.cs
- SqlBulkCopyColumnMappingCollection.cs
- AnimationClock.cs
- LayoutDump.cs
- PeerPresenceInfo.cs
- XmlNamespaceMappingCollection.cs
- MinimizableAttributeTypeConverter.cs
- WpfKnownType.cs
- TrackingServices.cs
- SynchronousChannelMergeEnumerator.cs
- Baml6Assembly.cs
- TableLayoutStyleCollection.cs
- FixedPosition.cs
- DataServiceRequestOfT.cs
- WindowsListViewGroupHelper.cs
- BuildManagerHost.cs
- InstanceDataCollectionCollection.cs
- MeasureItemEvent.cs
- BaseTemplateBuildProvider.cs
- HistoryEventArgs.cs
- ExpressionVisitorHelpers.cs
- XamlTypeMapperSchemaContext.cs
- TdsParserStateObject.cs
- RegexParser.cs
- MessageHeaderDescription.cs
- GZipDecoder.cs
- CustomGrammar.cs
- AccessibleObject.cs
- exports.cs
- CorrelationTokenTypeConvertor.cs
- ValidatorCompatibilityHelper.cs
- TransformConverter.cs
- EventLogger.cs
- RIPEMD160.cs
- EntityDataSourceView.cs
- PagedDataSource.cs
- PerformanceCounterPermission.cs
- CodeAttributeDeclarationCollection.cs
- PerformanceCounter.cs
- BaseDataList.cs
- xsdvalidator.cs
- PropertyTabAttribute.cs
- SharedPersonalizationStateInfo.cs
- FontUnitConverter.cs
- ReferenceSchema.cs
- UserThread.cs
- CollectionView.cs
- _ConnectionGroup.cs
- FocusWithinProperty.cs
- Pkcs7Signer.cs
- ScriptingJsonSerializationSection.cs
- ResXResourceReader.cs
- XmlSchemaRedefine.cs
- UserControlCodeDomTreeGenerator.cs