Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Serialization / System / Runtime / Serialization / GenericParameterDataContract.cs / 1305376 / GenericParameterDataContract.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Runtime.Serialization
{
using System;
using System.Collections.Generic;
using System.Security;
sealed class GenericParameterDataContract : DataContract
{
[Fx.Tag.SecurityNote(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;
[Fx.Tag.SecurityNote(Critical = "Initializes SecurityCritical field 'helper'.",
Safe = "Doesn't leak anything.")]
[SecuritySafeCritical]
internal GenericParameterDataContract(Type type) : base(new GenericParameterDataContractCriticalHelper(type))
{
helper = base.Helper as GenericParameterDataContractCriticalHelper;
}
internal int ParameterPosition
{
[Fx.Tag.SecurityNote(Critical = "Fetches the critical ParameterPosition property.",
Safe = "ParameterPosition only needs to be protected for write.")]
[SecuritySafeCritical]
get { return helper.ParameterPosition; }
}
internal override bool IsBuiltInDataContract
{
get
{
return true;
}
}
[Fx.Tag.SecurityNote(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, Dictionary boundContracts)
{
return paramContracts[ParameterPosition];
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Runtime.Serialization
{
using System;
using System.Collections.Generic;
using System.Security;
sealed class GenericParameterDataContract : DataContract
{
[Fx.Tag.SecurityNote(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;
[Fx.Tag.SecurityNote(Critical = "Initializes SecurityCritical field 'helper'.",
Safe = "Doesn't leak anything.")]
[SecuritySafeCritical]
internal GenericParameterDataContract(Type type) : base(new GenericParameterDataContractCriticalHelper(type))
{
helper = base.Helper as GenericParameterDataContractCriticalHelper;
}
internal int ParameterPosition
{
[Fx.Tag.SecurityNote(Critical = "Fetches the critical ParameterPosition property.",
Safe = "ParameterPosition only needs to be protected for write.")]
[SecuritySafeCritical]
get { return helper.ParameterPosition; }
}
internal override bool IsBuiltInDataContract
{
get
{
return true;
}
}
[Fx.Tag.SecurityNote(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, Dictionary boundContracts)
{
return paramContracts[ParameterPosition];
}
}
}
// 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
- DataConnectionHelper.cs
- ZipIOZip64EndOfCentralDirectoryLocatorBlock.cs
- DataKeyPropertyAttribute.cs
- WorkItem.cs
- PrintPreviewGraphics.cs
- EntityTransaction.cs
- TrackingServices.cs
- XmlSchemaCompilationSettings.cs
- XsdDuration.cs
- DynamicPropertyReader.cs
- WebBaseEventKeyComparer.cs
- ConditionalWeakTable.cs
- clipboard.cs
- XD.cs
- EntityStoreSchemaFilterEntry.cs
- ObsoleteAttribute.cs
- SubMenuStyleCollection.cs
- FontStyleConverter.cs
- CredentialSelector.cs
- XmlDataImplementation.cs
- ManagedIStream.cs
- StructuredTypeInfo.cs
- RuntimeArgumentHandle.cs
- PublisherIdentityPermission.cs
- GregorianCalendar.cs
- ObjectReaderCompiler.cs
- PathData.cs
- PointAnimationClockResource.cs
- UInt32Storage.cs
- RegexReplacement.cs
- TraversalRequest.cs
- AccessDataSource.cs
- GroupQuery.cs
- input.cs
- ImageField.cs
- ConfigurationSchemaErrors.cs
- XPathNode.cs
- Color.cs
- log.cs
- EntityDataSourceSelectingEventArgs.cs
- WebPartCloseVerb.cs
- cookiecontainer.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- AutomationPropertyInfo.cs
- EntityCommandDefinition.cs
- SerialPinChanges.cs
- ObjectDataSourceFilteringEventArgs.cs
- ProfileGroupSettings.cs
- ContextItemManager.cs
- RtfToXamlReader.cs
- AnyAllSearchOperator.cs
- SqlIdentifier.cs
- Stylesheet.cs
- NotFiniteNumberException.cs
- ValidationHelpers.cs
- HostedTransportConfigurationBase.cs
- ClientTarget.cs
- DynamicActivityXamlReader.cs
- EntityModelSchemaGenerator.cs
- _NetRes.cs
- ElementHostPropertyMap.cs
- SqlTriggerContext.cs
- SchemaElementLookUpTableEnumerator.cs
- COM2Properties.cs
- MultiplexingDispatchMessageFormatter.cs
- GridViewPageEventArgs.cs
- TextEditorContextMenu.cs
- UITypeEditor.cs
- WindowsListViewGroupSubsetLink.cs
- XmlSchemaSubstitutionGroup.cs
- LOSFormatter.cs
- CodeGeneratorOptions.cs
- WebPartUtil.cs
- ElementsClipboardData.cs
- SettingsAttributeDictionary.cs
- CodeMethodReturnStatement.cs
- FontNameEditor.cs
- TextParaClient.cs
- printdlgexmarshaler.cs
- SafeLibraryHandle.cs
- PropertyItemInternal.cs
- InstanceData.cs
- Keywords.cs
- EntityException.cs
- PersonalizableAttribute.cs
- AssociationEndMember.cs
- SerializationSectionGroup.cs
- SizeLimitedCache.cs
- UInt64Storage.cs
- HostProtectionPermission.cs
- SqlDataSourceFilteringEventArgs.cs
- WCFModelStrings.Designer.cs
- SRDisplayNameAttribute.cs
- DataGridViewColumn.cs
- FieldNameLookup.cs
- DataControlFieldHeaderCell.cs
- ProxyGenerator.cs
- DbProviderServices.cs
- TextFormatterContext.cs
- EdmSchemaAttribute.cs