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
- BooleanToSelectiveScrollingOrientationConverter.cs
- StateChangeEvent.cs
- TableHeaderCell.cs
- WebPartAuthorizationEventArgs.cs
- CommandLibraryHelper.cs
- RemoteWebConfigurationHostStream.cs
- TemplateField.cs
- CurrentTimeZone.cs
- SamlSubject.cs
- MetadataPropertyvalue.cs
- RouteItem.cs
- CodeValidator.cs
- SecurityRuntime.cs
- BindingExpression.cs
- Events.cs
- FormClosedEvent.cs
- Configuration.cs
- PageContentAsyncResult.cs
- ScriptResourceInfo.cs
- GlobalizationSection.cs
- XmlDownloadManager.cs
- CachedCompositeFamily.cs
- CommandBindingCollection.cs
- Pair.cs
- MenuCommand.cs
- SmiRecordBuffer.cs
- NetworkInformationPermission.cs
- StatusCommandUI.cs
- ReachDocumentSequenceSerializerAsync.cs
- SystemWebExtensionsSectionGroup.cs
- BamlRecordReader.cs
- TrustLevel.cs
- ShortcutKeysEditor.cs
- KeyEvent.cs
- ColorPalette.cs
- FileRecordSequenceCompletedAsyncResult.cs
- DirectoryInfo.cs
- DataTableTypeConverter.cs
- RequestCacheEntry.cs
- CodeAttributeArgument.cs
- CalendarDateRange.cs
- VerticalConnector.xaml.cs
- CodeGen.cs
- UrlAuthFailureHandler.cs
- IndexerNameAttribute.cs
- TemplateBaseAction.cs
- MonikerHelper.cs
- SerializationSectionGroup.cs
- SqlRewriteScalarSubqueries.cs
- ExpressionBindingCollection.cs
- DataSourceView.cs
- AttributeCollection.cs
- System.Data_BID.cs
- TextBoxAutomationPeer.cs
- StylusEditingBehavior.cs
- RegexWriter.cs
- MimeMapping.cs
- MaskedTextBoxDesignerActionList.cs
- ColumnResizeUndoUnit.cs
- EntityTypeBase.cs
- initElementDictionary.cs
- GridViewColumnHeaderAutomationPeer.cs
- TreeViewEvent.cs
- CharKeyFrameCollection.cs
- XmlEntityReference.cs
- MD5CryptoServiceProvider.cs
- DragDrop.cs
- PatternMatchRules.cs
- diagnosticsswitches.cs
- DecoderFallback.cs
- XpsS0ValidatingLoader.cs
- DashStyles.cs
- BufferedReadStream.cs
- FontCollection.cs
- SqlConnectionFactory.cs
- SqlConnectionManager.cs
- SafeNativeMethods.cs
- NavigatingCancelEventArgs.cs
- DefaultParameterValueAttribute.cs
- EventManager.cs
- FormatException.cs
- TemplateLookupAction.cs
- CollectionEditor.cs
- safelinkcollection.cs
- WorkflowRuntimeServiceElementCollection.cs
- DataGridViewCellStyleContentChangedEventArgs.cs
- CompositionTarget.cs
- TableStyle.cs
- EventProviderWriter.cs
- BufferBuilder.cs
- DeploymentExceptionMapper.cs
- RowBinding.cs
- ImageBrush.cs
- QueryOutputWriterV1.cs
- SqlExpander.cs
- ButtonColumn.cs
- DesignerActionTextItem.cs
- HttpRequestTraceRecord.cs
- MessageSecurityOverTcpElement.cs
- Page.cs