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
- ClientScriptItemCollection.cs
- Schedule.cs
- SiteMapProvider.cs
- GridViewCommandEventArgs.cs
- EmbossBitmapEffect.cs
- IconBitmapDecoder.cs
- QEncodedStream.cs
- LayoutEditorPart.cs
- IIS7UserPrincipal.cs
- CryptoApi.cs
- CorrelationTokenTypeConvertor.cs
- NumberFormatter.cs
- DeclarationUpdate.cs
- EditorPart.cs
- QueryCacheKey.cs
- ADConnectionHelper.cs
- DataGridRowAutomationPeer.cs
- UdpChannelFactory.cs
- DirectoryObjectSecurity.cs
- UnauthorizedWebPart.cs
- PathTooLongException.cs
- UnsafeNativeMethods.cs
- ProxyWebPartManager.cs
- ResourceIDHelper.cs
- InheritanceContextHelper.cs
- ToolStripHighContrastRenderer.cs
- SecureStringHasher.cs
- BindingCompleteEventArgs.cs
- DataGridViewDataConnection.cs
- MachineKeySection.cs
- InternalSafeNativeMethods.cs
- XmlElementList.cs
- Module.cs
- ProtocolViolationException.cs
- PingReply.cs
- DesignerVerbCollection.cs
- SoapInteropTypes.cs
- TextTreeExtractElementUndoUnit.cs
- BooleanToVisibilityConverter.cs
- ContextBase.cs
- _RequestCacheProtocol.cs
- ChangePassword.cs
- sqlmetadatafactory.cs
- LinqDataSourceEditData.cs
- OleDbMetaDataFactory.cs
- ScrollViewerAutomationPeer.cs
- ObfuscateAssemblyAttribute.cs
- Compress.cs
- PeerPresenceInfo.cs
- SerializerDescriptor.cs
- FlowDocumentScrollViewer.cs
- EntityClassGenerator.cs
- MatrixKeyFrameCollection.cs
- PropertyStore.cs
- CodeEntryPointMethod.cs
- SafeCryptoKeyHandle.cs
- RuntimeArgument.cs
- EnvironmentPermission.cs
- ForAllOperator.cs
- WindowsToolbar.cs
- EntityModelSchemaGenerator.cs
- Pointer.cs
- GatewayIPAddressInformationCollection.cs
- EventRouteFactory.cs
- CodeParameterDeclarationExpression.cs
- SafeFileMapViewHandle.cs
- _NativeSSPI.cs
- TeredoHelper.cs
- CatalogPartChrome.cs
- Double.cs
- MailSettingsSection.cs
- PageAdapter.cs
- InvalidMessageContractException.cs
- DesignerActionUIService.cs
- TimeZone.cs
- BoundPropertyEntry.cs
- TemplateColumn.cs
- WindowInteropHelper.cs
- RowCache.cs
- UserNameSecurityTokenAuthenticator.cs
- FilteredDataSetHelper.cs
- TypeResolver.cs
- TableLayoutColumnStyleCollection.cs
- OneOfScalarConst.cs
- PrimitiveXmlSerializers.cs
- Marshal.cs
- ReturnType.cs
- ContentType.cs
- File.cs
- DataViewManagerListItemTypeDescriptor.cs
- TypeExtensionConverter.cs
- PersonalizationState.cs
- SafeCoTaskMem.cs
- RunWorkerCompletedEventArgs.cs
- SqlAliaser.cs
- JournalEntry.cs
- TransactionCache.cs
- ToolStripGrip.cs
- CodeAttributeDeclaration.cs
- FileDataSourceCache.cs