Code:
/ 4.0 / 4.0 / 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.
//------------------------------------------------------------------------------
// 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
- SoapReflector.cs
- codemethodreferenceexpression.cs
- PasswordBox.cs
- ColorPalette.cs
- ScrollItemProviderWrapper.cs
- DynamicDiscoveryDocument.cs
- GACIdentityPermission.cs
- LinkLabel.cs
- sitestring.cs
- WindowsToolbar.cs
- CharacterBuffer.cs
- ResourceProviderFactory.cs
- Stream.cs
- EntityDataSourceChangingEventArgs.cs
- DbProviderManifest.cs
- ServiceModelSecurityTokenRequirement.cs
- CodeSubDirectory.cs
- XmlAttributeOverrides.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- TagNameToTypeMapper.cs
- AutoSizeToolBoxItem.cs
- ChannelOptions.cs
- WebExceptionStatus.cs
- ApplicationId.cs
- RootNamespaceAttribute.cs
- PageHandlerFactory.cs
- FrameworkContextData.cs
- ErrorEventArgs.cs
- StorageTypeMapping.cs
- RoleManagerSection.cs
- DataGridCellAutomationPeer.cs
- ScriptingWebServicesSectionGroup.cs
- Style.cs
- DragEventArgs.cs
- SystemNetHelpers.cs
- SchemaSetCompiler.cs
- ButtonBaseAutomationPeer.cs
- PerformanceCounterPermissionEntryCollection.cs
- PointLight.cs
- TreeViewItemAutomationPeer.cs
- Drawing.cs
- Resources.Designer.cs
- WmfPlaceableFileHeader.cs
- IndentedTextWriter.cs
- Misc.cs
- EntryIndex.cs
- LexicalChunk.cs
- FontFamily.cs
- SkinIDTypeConverter.cs
- AsymmetricSecurityBindingElement.cs
- ScrollableControl.cs
- SystemTcpConnection.cs
- GeneralTransform.cs
- DataGridTable.cs
- HtmlEncodedRawTextWriter.cs
- ExpandedProjectionNode.cs
- DbMetaDataCollectionNames.cs
- CompiledQueryCacheKey.cs
- RangeContentEnumerator.cs
- IPEndPoint.cs
- RemotingServices.cs
- HMAC.cs
- BooleanProjectedSlot.cs
- InstanceHandleReference.cs
- TransportChannelListener.cs
- EnumBuilder.cs
- SqlGatherConsumedAliases.cs
- SqlDataSource.cs
- Substitution.cs
- ByteStorage.cs
- ContentType.cs
- SqlDependencyUtils.cs
- DataGridItemCollection.cs
- FillRuleValidation.cs
- JapaneseCalendar.cs
- KeyFrames.cs
- Font.cs
- QueryCursorEventArgs.cs
- LineSegment.cs
- ColumnResizeAdorner.cs
- TextElementEnumerator.cs
- RoutedEventConverter.cs
- DataFormats.cs
- ManifestSignedXml.cs
- SqlClientWrapperSmiStream.cs
- CodeTypeReferenceCollection.cs
- DataGridGeneralPage.cs
- TreeNodeMouseHoverEvent.cs
- CodeSnippetTypeMember.cs
- ManagedWndProcTracker.cs
- ExtendedProperty.cs
- WmlValidatorAdapter.cs
- XmlCustomFormatter.cs
- SecurityException.cs
- UserControl.cs
- MemberDomainMap.cs
- BuildProviderUtils.cs
- WorkflowCreationContext.cs
- PropertyGridEditorPart.cs
- iisPickupDirectory.cs