Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Serialization / System / Runtime / Serialization / SpecialTypeDataContract.cs / 1305376 / SpecialTypeDataContract.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//-----------------------------------------------------------------------------
namespace System.Runtime.Serialization
{
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Security;
sealed class SpecialTypeDataContract : 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]
SpecialTypeDataContractCriticalHelper helper;
[Fx.Tag.SecurityNote(Critical = "Initializes SecurityCritical field 'helper'.",
Safe = "Doesn't leak anything.")]
[SecuritySafeCritical]
public SpecialTypeDataContract(Type type) : base(new SpecialTypeDataContractCriticalHelper(type))
{
helper = base.Helper as SpecialTypeDataContractCriticalHelper;
}
[Fx.Tag.SecurityNote(Critical = "Initializes SecurityCritical field 'helper'.",
Safe = "Doesn't leak anything.")]
[SecuritySafeCritical]
public SpecialTypeDataContract(Type type, XmlDictionaryString name, XmlDictionaryString ns) : base(new SpecialTypeDataContractCriticalHelper(type, name, ns))
{
helper = base.Helper as SpecialTypeDataContractCriticalHelper;
}
internal override bool IsBuiltInDataContract
{
get
{
return true;
}
}
[Fx.Tag.SecurityNote(Critical = "Holds all state used for for (de)serializing known types like System.Enum, System.ValueType, etc."
+ " Since the data is cached statically, we lock down access to it.")]
[SecurityCritical(SecurityCriticalScope.Everything)]
class SpecialTypeDataContractCriticalHelper : DataContract.DataContractCriticalHelper
{
internal SpecialTypeDataContractCriticalHelper(Type type) : base(type)
{
}
internal SpecialTypeDataContractCriticalHelper(Type type, XmlDictionaryString name, XmlDictionaryString ns) : base(type)
{
SetDataContractName(name, ns);
}
}
}
}
// 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
- RolePrincipal.cs
- SelectionChangedEventArgs.cs
- Operator.cs
- NamedPipeProcessProtocolHandler.cs
- DateTimeConverter2.cs
- XmlDocumentSerializer.cs
- LassoHelper.cs
- TransactionTraceIdentifier.cs
- RegexFCD.cs
- RepeaterItemCollection.cs
- Debugger.cs
- ColorContext.cs
- KeyedByTypeCollection.cs
- NavigationExpr.cs
- InvalidCastException.cs
- InputManager.cs
- SafeSecurityHelper.cs
- _ProxyChain.cs
- WindowsRegion.cs
- InstanceDescriptor.cs
- ResourceManagerWrapper.cs
- ButtonBase.cs
- Clipboard.cs
- PathTooLongException.cs
- ExternalFile.cs
- Cursors.cs
- RewritingSimplifier.cs
- Command.cs
- CharacterMetricsDictionary.cs
- ServiceModelEnumValidator.cs
- UserControl.cs
- counter.cs
- ClientSettingsProvider.cs
- DocumentPage.cs
- TraceSource.cs
- PerfProviderCollection.cs
- KeyEventArgs.cs
- GeneralTransformGroup.cs
- Visual3D.cs
- CellParaClient.cs
- DataControlHelper.cs
- ManagementOperationWatcher.cs
- EmptyCollection.cs
- RuleSettingsCollection.cs
- PassportPrincipal.cs
- HMACSHA384.cs
- Processor.cs
- BindingContext.cs
- CompilerTypeWithParams.cs
- FormViewUpdateEventArgs.cs
- WebPartDisplayModeEventArgs.cs
- CharAnimationUsingKeyFrames.cs
- unitconverter.cs
- BrowserCapabilitiesFactory.cs
- OutputCacheSection.cs
- TableLayoutRowStyleCollection.cs
- HtmlAnchor.cs
- ellipse.cs
- DisplayNameAttribute.cs
- FragmentNavigationEventArgs.cs
- ConstraintManager.cs
- AnnotationObservableCollection.cs
- BaseComponentEditor.cs
- PropertyValueUIItem.cs
- PropertyConverter.cs
- PlanCompiler.cs
- Int32AnimationUsingKeyFrames.cs
- ToolBar.cs
- DataGridViewRowEventArgs.cs
- ReadContentAsBinaryHelper.cs
- MarkerProperties.cs
- ServiceModelActivity.cs
- RegexCapture.cs
- MemberJoinTreeNode.cs
- FocusTracker.cs
- DesignerWithHeader.cs
- IIS7UserPrincipal.cs
- ToolStripItemCollection.cs
- FixedSOMFixedBlock.cs
- SafeFileMappingHandle.cs
- WorkflowMarkupSerializerMapping.cs
- MD5.cs
- MessageDecoder.cs
- GeometryModel3D.cs
- ErrorRuntimeConfig.cs
- SqlGenericUtil.cs
- _HelperAsyncResults.cs
- TextBlock.cs
- RoleBoolean.cs
- DesignerVerb.cs
- ControlUtil.cs
- WebBrowser.cs
- DbCommandDefinition.cs
- RecognizerInfo.cs
- PathSegmentCollection.cs
- OleDbCommandBuilder.cs
- webbrowsersite.cs
- SoundPlayer.cs
- ZipIOExtraFieldElement.cs
- QilNode.cs