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
- ProcessModuleCollection.cs
- PasswordRecovery.cs
- NavigationPropertyEmitter.cs
- SafeThemeHandle.cs
- NotifyParentPropertyAttribute.cs
- ValidationHelper.cs
- EventSetter.cs
- TableParagraph.cs
- StickyNote.cs
- SqlTypeConverter.cs
- DataSourceView.cs
- QuaternionAnimationUsingKeyFrames.cs
- sqlmetadatafactory.cs
- InternalsVisibleToAttribute.cs
- CryptoApi.cs
- EntityReference.cs
- ChannelBuilder.cs
- ColorAnimation.cs
- CustomAttributeBuilder.cs
- IndexedGlyphRun.cs
- ContentControl.cs
- FontStyleConverter.cs
- SoapSchemaMember.cs
- TransactionScope.cs
- HTTP_SERVICE_CONFIG_URLACL_PARAM.cs
- PropertyChangedEventManager.cs
- TextAdaptor.cs
- DBSchemaTable.cs
- RoleManagerEventArgs.cs
- DefaultEventAttribute.cs
- ForceCopyBuildProvider.cs
- BitmapData.cs
- MaskedTextBoxDesignerActionList.cs
- HtmlTernaryTree.cs
- CustomAttributeBuilder.cs
- SspiWrapper.cs
- RelationshipEndCollection.cs
- FlowDocumentReaderAutomationPeer.cs
- Transform3DGroup.cs
- ObjectPropertyMapping.cs
- DynamicQueryStringParameter.cs
- UnionCodeGroup.cs
- ActivityInfo.cs
- ServiceMetadataBehavior.cs
- ControlPropertyNameConverter.cs
- CellTreeNode.cs
- ClassValidator.cs
- LicenseContext.cs
- DbgUtil.cs
- WebPartMinimizeVerb.cs
- UrlAuthorizationModule.cs
- CodeMethodReturnStatement.cs
- UrlParameterWriter.cs
- HandoffBehavior.cs
- UserPersonalizationStateInfo.cs
- Adorner.cs
- CachingHintValidation.cs
- APCustomTypeDescriptor.cs
- LexicalChunk.cs
- MD5CryptoServiceProvider.cs
- UnknownBitmapEncoder.cs
- ObjectAnimationBase.cs
- EFTableProvider.cs
- TableParaClient.cs
- HttpCookie.cs
- ConfigXmlAttribute.cs
- DebugView.cs
- StrokeSerializer.cs
- COM2Properties.cs
- IdentityNotMappedException.cs
- BackoffTimeoutHelper.cs
- ResourceDefaultValueAttribute.cs
- DictionaryMarkupSerializer.cs
- ValueQuery.cs
- Claim.cs
- Globals.cs
- XmlQueryTypeFactory.cs
- MulticastIPAddressInformationCollection.cs
- FacetEnabledSchemaElement.cs
- CreateUserWizardStep.cs
- WebPermission.cs
- Splitter.cs
- Win32PrintDialog.cs
- HiddenFieldPageStatePersister.cs
- XDRSchema.cs
- WindowsStatic.cs
- CTreeGenerator.cs
- CodeParameterDeclarationExpressionCollection.cs
- ItemContainerGenerator.cs
- SimpleWebHandlerParser.cs
- PassportIdentity.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- GestureRecognitionResult.cs
- Rect3D.cs
- PlatformCulture.cs
- Collection.cs
- ITextView.cs
- Scene3D.cs
- CollectionViewGroup.cs
- MachineKeyConverter.cs