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
- Transform.cs
- MailBnfHelper.cs
- CodeFieldReferenceExpression.cs
- XmlNodeReader.cs
- _OSSOCK.cs
- LiteralSubsegment.cs
- WebPartTransformer.cs
- BrowserCapabilitiesCompiler.cs
- WebExceptionStatus.cs
- NullRuntimeConfig.cs
- ToolStripManager.cs
- Typeface.cs
- ZipIOExtraFieldZip64Element.cs
- MenuItemStyleCollection.cs
- ToolStripRendererSwitcher.cs
- TextEditorCharacters.cs
- WinInetCache.cs
- DoubleLinkList.cs
- ValidationHelpers.cs
- XPathPatternBuilder.cs
- Char.cs
- Propagator.Evaluator.cs
- UpDownBase.cs
- RenamedEventArgs.cs
- WindowsContainer.cs
- EncoderParameters.cs
- DataRelationCollection.cs
- WebPartConnectionsEventArgs.cs
- ListViewPagedDataSource.cs
- ProgressBarBrushConverter.cs
- NameObjectCollectionBase.cs
- PKCS1MaskGenerationMethod.cs
- arc.cs
- Container.cs
- SqlRowUpdatingEvent.cs
- ZipIOModeEnforcingStream.cs
- SeverityFilter.cs
- ButtonChrome.cs
- xml.cs
- DispatcherOperation.cs
- ContainerVisual.cs
- OpenTypeLayoutCache.cs
- DefaultBindingPropertyAttribute.cs
- SmiContextFactory.cs
- COM2Enum.cs
- TextParagraphProperties.cs
- CurrentChangingEventArgs.cs
- XmlWrappingReader.cs
- CollectionEditorDialog.cs
- WebPartCollection.cs
- LongValidator.cs
- ParamArrayAttribute.cs
- SplitterDesigner.cs
- MenuItemAutomationPeer.cs
- HotSpot.cs
- EncoderExceptionFallback.cs
- ItemsChangedEventArgs.cs
- QilExpression.cs
- CustomCategoryAttribute.cs
- SourceElementsCollection.cs
- StringArrayConverter.cs
- graph.cs
- TileBrush.cs
- ComplexType.cs
- SignedXml.cs
- TransformConverter.cs
- _SSPIWrapper.cs
- Validator.cs
- OneOfConst.cs
- BoolExpression.cs
- EntityModelBuildProvider.cs
- FrameworkElement.cs
- UIElement.cs
- Events.cs
- Update.cs
- SqlDataSourceFilteringEventArgs.cs
- GeneratedContractType.cs
- ApplicationDirectory.cs
- ConsumerConnectionPoint.cs
- AtomEntry.cs
- EventLogTraceListener.cs
- PropertyDescriptorCollection.cs
- Stream.cs
- PhonemeConverter.cs
- UnhandledExceptionEventArgs.cs
- MimeTypeAttribute.cs
- FileLevelControlBuilderAttribute.cs
- EmptyStringExpandableObjectConverter.cs
- IDictionary.cs
- XhtmlBasicLiteralTextAdapter.cs
- FacetChecker.cs
- DataGridViewMethods.cs
- DataTablePropertyDescriptor.cs
- IpcClientManager.cs
- Keyboard.cs
- ImportCatalogPart.cs
- ProfileGroupSettingsCollection.cs
- RtfToken.cs
- NonClientArea.cs
- DateTimeFormatInfoScanner.cs