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
- XmlDigitalSignatureProcessor.cs
- Parser.cs
- CodeObjectCreateExpression.cs
- EventData.cs
- IntSecurity.cs
- Ticks.cs
- SiteMapDesignerDataSourceView.cs
- Color.cs
- XamlInterfaces.cs
- ScrollChangedEventArgs.cs
- DuplicateDetector.cs
- LoginUtil.cs
- ImpersonationContext.cs
- BinaryUtilClasses.cs
- DecimalConverter.cs
- ObjectDataSource.cs
- OdbcCommandBuilder.cs
- DateTimePicker.cs
- templategroup.cs
- StyleTypedPropertyAttribute.cs
- XPathQilFactory.cs
- ITreeGenerator.cs
- ExplicitDiscriminatorMap.cs
- PartialTrustVisibleAssembly.cs
- PointLight.cs
- TagElement.cs
- ProfileServiceManager.cs
- RedBlackList.cs
- EntityDataSourceStatementEditorForm.cs
- TransformConverter.cs
- coordinator.cs
- ChildTable.cs
- BaseInfoTable.cs
- HttpGetProtocolImporter.cs
- UrlPath.cs
- RowParagraph.cs
- DescendantOverDescendantQuery.cs
- WebConfigurationFileMap.cs
- TdsParserStaticMethods.cs
- ImpersonateTokenRef.cs
- TrustLevel.cs
- OrderedEnumerableRowCollection.cs
- PropertyDescriptors.cs
- BitmapEffectDrawingContextWalker.cs
- OpenTypeCommon.cs
- PageBreakRecord.cs
- TransactionsSectionGroup.cs
- SimpleHandlerBuildProvider.cs
- Exceptions.cs
- Part.cs
- Overlapped.cs
- XmlSchemaSet.cs
- HttpCacheVaryByContentEncodings.cs
- OutputCacheSettingsSection.cs
- EntityContainer.cs
- XPathException.cs
- WebServicesInteroperability.cs
- TextTreePropertyUndoUnit.cs
- RequestQueue.cs
- ListCollectionView.cs
- ConstantCheck.cs
- WasHttpModulesInstallComponent.cs
- EndpointBehaviorElementCollection.cs
- METAHEADER.cs
- DataServiceEntityAttribute.cs
- BatchStream.cs
- Content.cs
- WebReferencesBuildProvider.cs
- TemplateBindingExtension.cs
- BezierSegment.cs
- UserControlAutomationPeer.cs
- TypeUtils.cs
- CallSite.cs
- ChangeBlockUndoRecord.cs
- PopupRootAutomationPeer.cs
- RelationshipDetailsRow.cs
- NativeMethods.cs
- PersonalizableAttribute.cs
- COM2EnumConverter.cs
- RuleSettingsCollection.cs
- SystemResources.cs
- RegularExpressionValidator.cs
- MarkupObject.cs
- XmlSubtreeReader.cs
- TraceHelpers.cs
- ButtonBaseAutomationPeer.cs
- ScriptReference.cs
- CipherData.cs
- OperationContractAttribute.cs
- DataGridState.cs
- HTMLTextWriter.cs
- UnlockInstanceAsyncResult.cs
- BezierSegment.cs
- InfoCardRSACryptoProvider.cs
- ExpressionsCollectionEditor.cs
- CheckBoxPopupAdapter.cs
- HtmlInputImage.cs
- TextHidden.cs
- FlowDocument.cs
- PeerNeighborManager.cs