Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / clr / src / BCL / System / Text / CodePageEncoding.cs / 1 / CodePageEncoding.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
// WARNING:
//
// This is just an IObjectReference proxy for the Code Page Encodings.
namespace System.Text
{
using System;
using System.Runtime.Serialization;
using System.Security.Permissions;
/*=================================CodePageEncoding==================================
** This class is here only to deserialize the Code Page classes from Everett (V1.1) into
** Appropriate Whidbey (V2.0) objects. We also serialize the Whidbey classes
** using this proxy since we pretty much need one anyway and that solves Whidbey
** to Everett compatibility as well.
==============================================================================*/
[Serializable()]
internal sealed class CodePageEncoding : ISerializable, IObjectReference
{
// Temp stuff
[NonSerialized]
private int m_codePage;
[NonSerialized]
private bool m_isReadOnly;
[NonSerialized]
private bool m_deserializedFromEverett = false;
[NonSerialized]
private EncoderFallback encoderFallback = null;
[NonSerialized]
private DecoderFallback decoderFallback = null;
// Might need this when GetRealObjecting
[NonSerialized]
private Encoding realEncoding = null;
// Constructor called by serialization.
internal CodePageEncoding(SerializationInfo info, StreamingContext context)
{
// Any info?
if (info==null) throw new ArgumentNullException("info");
// All versions have a code page
this.m_codePage = (int)info.GetValue("m_codePage", typeof(int));
// See if we have a code page
try
{
//
// Try Whidbey V2.0 Fields
//
this.m_isReadOnly = (bool)info.GetValue("m_isReadOnly", typeof(bool));
this.encoderFallback = (EncoderFallback)info.GetValue("encoderFallback", typeof(EncoderFallback));
this.decoderFallback = (DecoderFallback)info.GetValue("decoderFallback", typeof(DecoderFallback));
}
catch (SerializationException)
{
//
// Didn't have Whidbey things, must be Everett
//
this.m_deserializedFromEverett = true;
// May as well be read only
this.m_isReadOnly = true;
}
}
// Just get it from GetEncoding
public Object GetRealObject(StreamingContext context)
{
// Get our encoding (Note: This has default fallbacks for readonly and everett cases)
this.realEncoding = Encoding.GetEncoding(this.m_codePage);
// If its read only then it uses default fallbacks, otherwise pick up the new ones
// Otherwise we want to leave the new one read only
if (!this.m_deserializedFromEverett && !this.m_isReadOnly)
{
this.realEncoding = (Encoding)this.realEncoding.Clone();
this.realEncoding.EncoderFallback = this.encoderFallback;
this.realEncoding.DecoderFallback = this.decoderFallback;
}
return this.realEncoding;
}
// ISerializable implementation
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)]
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
{
// We cannot ever call this.
BCLDebug.Assert(false, "Didn't expect to make it to CodePageEncoding ISerializable.GetObjectData");
throw new ArgumentException(Environment.GetResourceString("Arg_ExecutionEngineException"));
}
// Same problem with the Decoder, this only happens with Everett Decoders
[Serializable]
internal sealed class Decoder : ISerializable, IObjectReference
{
// Might need this when GetRealObjecting
[NonSerialized]
private Encoding realEncoding = null;
// Constructor called by serialization, have to handle deserializing from Everett
internal Decoder(SerializationInfo info, StreamingContext context)
{
// Any info?
if (info==null) throw new ArgumentNullException("info");
this.realEncoding = (Encoding)info.GetValue("encoding", typeof(Encoding));
}
// Just get it from GetDecider
public Object GetRealObject(StreamingContext context)
{
return this.realEncoding.GetDecoder();
}
// ISerializable implementation, get data for this object
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)]
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
{
// We cannot ever call this.
BCLDebug.Assert(false, "Didn't expect to make it to CodePageEncoding.Decoder.GetObjectData");
throw new ArgumentException(Environment.GetResourceString("Arg_ExecutionEngineException"));
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
// WARNING:
//
// This is just an IObjectReference proxy for the Code Page Encodings.
namespace System.Text
{
using System;
using System.Runtime.Serialization;
using System.Security.Permissions;
/*=================================CodePageEncoding==================================
** This class is here only to deserialize the Code Page classes from Everett (V1.1) into
** Appropriate Whidbey (V2.0) objects. We also serialize the Whidbey classes
** using this proxy since we pretty much need one anyway and that solves Whidbey
** to Everett compatibility as well.
==============================================================================*/
[Serializable()]
internal sealed class CodePageEncoding : ISerializable, IObjectReference
{
// Temp stuff
[NonSerialized]
private int m_codePage;
[NonSerialized]
private bool m_isReadOnly;
[NonSerialized]
private bool m_deserializedFromEverett = false;
[NonSerialized]
private EncoderFallback encoderFallback = null;
[NonSerialized]
private DecoderFallback decoderFallback = null;
// Might need this when GetRealObjecting
[NonSerialized]
private Encoding realEncoding = null;
// Constructor called by serialization.
internal CodePageEncoding(SerializationInfo info, StreamingContext context)
{
// Any info?
if (info==null) throw new ArgumentNullException("info");
// All versions have a code page
this.m_codePage = (int)info.GetValue("m_codePage", typeof(int));
// See if we have a code page
try
{
//
// Try Whidbey V2.0 Fields
//
this.m_isReadOnly = (bool)info.GetValue("m_isReadOnly", typeof(bool));
this.encoderFallback = (EncoderFallback)info.GetValue("encoderFallback", typeof(EncoderFallback));
this.decoderFallback = (DecoderFallback)info.GetValue("decoderFallback", typeof(DecoderFallback));
}
catch (SerializationException)
{
//
// Didn't have Whidbey things, must be Everett
//
this.m_deserializedFromEverett = true;
// May as well be read only
this.m_isReadOnly = true;
}
}
// Just get it from GetEncoding
public Object GetRealObject(StreamingContext context)
{
// Get our encoding (Note: This has default fallbacks for readonly and everett cases)
this.realEncoding = Encoding.GetEncoding(this.m_codePage);
// If its read only then it uses default fallbacks, otherwise pick up the new ones
// Otherwise we want to leave the new one read only
if (!this.m_deserializedFromEverett && !this.m_isReadOnly)
{
this.realEncoding = (Encoding)this.realEncoding.Clone();
this.realEncoding.EncoderFallback = this.encoderFallback;
this.realEncoding.DecoderFallback = this.decoderFallback;
}
return this.realEncoding;
}
// ISerializable implementation
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)]
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
{
// We cannot ever call this.
BCLDebug.Assert(false, "Didn't expect to make it to CodePageEncoding ISerializable.GetObjectData");
throw new ArgumentException(Environment.GetResourceString("Arg_ExecutionEngineException"));
}
// Same problem with the Decoder, this only happens with Everett Decoders
[Serializable]
internal sealed class Decoder : ISerializable, IObjectReference
{
// Might need this when GetRealObjecting
[NonSerialized]
private Encoding realEncoding = null;
// Constructor called by serialization, have to handle deserializing from Everett
internal Decoder(SerializationInfo info, StreamingContext context)
{
// Any info?
if (info==null) throw new ArgumentNullException("info");
this.realEncoding = (Encoding)info.GetValue("encoding", typeof(Encoding));
}
// Just get it from GetDecider
public Object GetRealObject(StreamingContext context)
{
return this.realEncoding.GetDecoder();
}
// ISerializable implementation, get data for this object
[SecurityPermissionAttribute(SecurityAction.LinkDemand, Flags=SecurityPermissionFlag.SerializationFormatter)]
void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
{
// We cannot ever call this.
BCLDebug.Assert(false, "Didn't expect to make it to CodePageEncoding.Decoder.GetObjectData");
throw new ArgumentException(Environment.GetResourceString("Arg_ExecutionEngineException"));
}
}
}
}
// 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
- ObjectDataSourceFilteringEventArgs.cs
- ExceptionHelpers.cs
- SemaphoreSecurity.cs
- securitycriticaldata.cs
- AutomationEventArgs.cs
- QueryTask.cs
- ObfuscateAssemblyAttribute.cs
- DataRelationCollection.cs
- IdnElement.cs
- InvalidFilterCriteriaException.cs
- SelectionRangeConverter.cs
- ObjectResult.cs
- StorageSetMapping.cs
- IInstanceTable.cs
- WorkflowInlining.cs
- Win32MouseDevice.cs
- ValidationErrorInfo.cs
- TimeSpanOrInfiniteConverter.cs
- Send.cs
- OutKeywords.cs
- SHA1CryptoServiceProvider.cs
- documentsequencetextcontainer.cs
- WindowsStatusBar.cs
- RegistrySecurity.cs
- ButtonBaseAutomationPeer.cs
- ItemTypeToolStripMenuItem.cs
- CodeEventReferenceExpression.cs
- WpfWebRequestHelper.cs
- Int32KeyFrameCollection.cs
- CopyAction.cs
- RoleBoolean.cs
- COM2IDispatchConverter.cs
- CssStyleCollection.cs
- StatusBar.cs
- ScalarOps.cs
- CheckableControlBaseAdapter.cs
- OleDbSchemaGuid.cs
- XmlParser.cs
- FlowDocumentReader.cs
- CaseInsensitiveHashCodeProvider.cs
- TrustLevel.cs
- ConversionContext.cs
- CodeChecksumPragma.cs
- MetaColumn.cs
- SizeFConverter.cs
- FileDialog_Vista.cs
- ParameterCollection.cs
- MemberInfoSerializationHolder.cs
- ReadWriteObjectLock.cs
- WebReferencesBuildProvider.cs
- GeneralTransform3DGroup.cs
- BulletDecorator.cs
- Page.cs
- SEHException.cs
- ViewService.cs
- WeakEventManager.cs
- WriteTimeStream.cs
- ExceptionHandlers.cs
- DataControlFieldCell.cs
- JoinElimination.cs
- XmlSecureResolver.cs
- SchemeSettingElementCollection.cs
- CqlParser.cs
- HwndSourceKeyboardInputSite.cs
- FieldToken.cs
- XmlTextReaderImplHelpers.cs
- ComPlusInstanceProvider.cs
- ClearTypeHintValidation.cs
- ManipulationPivot.cs
- MapPathBasedVirtualPathProvider.cs
- TypeInitializationException.cs
- SqlBulkCopyColumnMappingCollection.cs
- ElementUtil.cs
- NetStream.cs
- CheckBoxFlatAdapter.cs
- TripleDESCryptoServiceProvider.cs
- RegexGroupCollection.cs
- _FixedSizeReader.cs
- DetailsViewDeletedEventArgs.cs
- MulticastOption.cs
- SqlUDTStorage.cs
- RoleService.cs
- MenuItem.cs
- ErrorsHelper.cs
- DataGridViewButtonCell.cs
- XmlDataImplementation.cs
- AppDomain.cs
- ComPersistableTypeElementCollection.cs
- SafeProcessHandle.cs
- XmlDataFileEditor.cs
- ElementHost.cs
- TextLine.cs
- HttpVersion.cs
- ForceCopyBuildProvider.cs
- CodeGroup.cs
- TimeZone.cs
- OracleEncoding.cs
- ComboBox.cs
- OrderPreservingPipeliningSpoolingTask.cs
- DSASignatureFormatter.cs