Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / clr / src / BCL / System / Text / MLangCodePageEncoding.cs / 1 / MLangCodePageEncoding.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
// WARNING:
//
// This is just an IObjectReference proxy for the former MLang Encodings (V1.1)
// We keep the old name now even for the Whidbey V2.0 IObjectReference because it also
// works with the Everett V1.1 version.
namespace System.Text
{
using System;
using System.Runtime.Serialization;
using System.Security.Permissions;
/*=================================MLangCodePageEncoding==================================
** This class is here only to deserialize the MLang 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 MLangCodePageEncoding : 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 MLangCodePageEncoding(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 MLangCodePageEncoding ISerializable.GetObjectData");
throw new ArgumentException(Environment.GetResourceString("Arg_ExecutionEngineException")); }
// Same problem with the Encoder, this only happens with Everett Encoders
[Serializable]
internal sealed class MLangEncoder : ISerializable, IObjectReference
{
// Might need this when GetRealObjecting
[NonSerialized]
private Encoding realEncoding = null;
// Constructor called by serialization, have to handle deserializing from Everett
internal MLangEncoder(SerializationInfo info, StreamingContext context)
{
// Any info?
if (info==null) throw new ArgumentNullException("info");
this.realEncoding = (Encoding)info.GetValue("m_encoding", typeof(Encoding));
}
// Just get it from GetEncoder
public Object GetRealObject(StreamingContext context)
{
return this.realEncoding.GetEncoder();
}
// 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 MLangCodePageEncoding.MLangEncoder.GetObjectData");
throw new ArgumentException(Environment.GetResourceString("Arg_ExecutionEngineException"));
}
}
// Same problem with the Decoder, this only happens with Everett Decoders
[Serializable]
internal sealed class MLangDecoder : ISerializable, IObjectReference
{
// Might need this when GetRealObjecting
[NonSerialized]
private Encoding realEncoding = null;
// Constructor called by serialization, have to handle deserializing from Everett
internal MLangDecoder(SerializationInfo info, StreamingContext context)
{
// Any info?
if (info==null) throw new ArgumentNullException("info");
this.realEncoding = (Encoding)info.GetValue("m_encoding", typeof(Encoding));
}
// Just get it from GetDecoder
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 MLangCodePageEncoding.MLangDecoder.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 former MLang Encodings (V1.1)
// We keep the old name now even for the Whidbey V2.0 IObjectReference because it also
// works with the Everett V1.1 version.
namespace System.Text
{
using System;
using System.Runtime.Serialization;
using System.Security.Permissions;
/*=================================MLangCodePageEncoding==================================
** This class is here only to deserialize the MLang 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 MLangCodePageEncoding : 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 MLangCodePageEncoding(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 MLangCodePageEncoding ISerializable.GetObjectData");
throw new ArgumentException(Environment.GetResourceString("Arg_ExecutionEngineException")); }
// Same problem with the Encoder, this only happens with Everett Encoders
[Serializable]
internal sealed class MLangEncoder : ISerializable, IObjectReference
{
// Might need this when GetRealObjecting
[NonSerialized]
private Encoding realEncoding = null;
// Constructor called by serialization, have to handle deserializing from Everett
internal MLangEncoder(SerializationInfo info, StreamingContext context)
{
// Any info?
if (info==null) throw new ArgumentNullException("info");
this.realEncoding = (Encoding)info.GetValue("m_encoding", typeof(Encoding));
}
// Just get it from GetEncoder
public Object GetRealObject(StreamingContext context)
{
return this.realEncoding.GetEncoder();
}
// 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 MLangCodePageEncoding.MLangEncoder.GetObjectData");
throw new ArgumentException(Environment.GetResourceString("Arg_ExecutionEngineException"));
}
}
// Same problem with the Decoder, this only happens with Everett Decoders
[Serializable]
internal sealed class MLangDecoder : ISerializable, IObjectReference
{
// Might need this when GetRealObjecting
[NonSerialized]
private Encoding realEncoding = null;
// Constructor called by serialization, have to handle deserializing from Everett
internal MLangDecoder(SerializationInfo info, StreamingContext context)
{
// Any info?
if (info==null) throw new ArgumentNullException("info");
this.realEncoding = (Encoding)info.GetValue("m_encoding", typeof(Encoding));
}
// Just get it from GetDecoder
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 MLangCodePageEncoding.MLangDecoder.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
- SQLBytes.cs
- RtfToXamlLexer.cs
- X509SecurityTokenAuthenticator.cs
- GradientStopCollection.cs
- CodeGotoStatement.cs
- DbExpressionBuilder.cs
- AssemblyInfo.cs
- WebPartDisplayMode.cs
- SocketException.cs
- DependencyPropertyKey.cs
- FormatConvertedBitmap.cs
- _AcceptOverlappedAsyncResult.cs
- GenericParameterDataContract.cs
- RichTextBox.cs
- PixelShader.cs
- ObjectDataSourceEventArgs.cs
- SettingsBase.cs
- Control.cs
- QilBinary.cs
- WindowsFont.cs
- DSASignatureFormatter.cs
- StructuredTypeEmitter.cs
- FrameDimension.cs
- ResXResourceWriter.cs
- Win32PrintDialog.cs
- PropertyManager.cs
- ChoiceConverter.cs
- Rect3DConverter.cs
- Ops.cs
- ManagementException.cs
- SiteMembershipCondition.cs
- LambdaReference.cs
- NotificationContext.cs
- Rotation3D.cs
- SchemaObjectWriter.cs
- OutputScope.cs
- TrueReadOnlyCollection.cs
- WindowsProgressbar.cs
- FolderBrowserDialog.cs
- StylusButtonCollection.cs
- PointConverter.cs
- TransactionValidationBehavior.cs
- CompositeFontInfo.cs
- QilLiteral.cs
- WebPartActionVerb.cs
- XamlTreeBuilderBamlRecordWriter.cs
- FacetEnabledSchemaElement.cs
- ExceptionRoutedEventArgs.cs
- PolyLineSegment.cs
- BindingOperations.cs
- DocumentOrderQuery.cs
- TcpSocketManager.cs
- TrustSection.cs
- LinkedResourceCollection.cs
- XmlSchemaSubstitutionGroup.cs
- HttpRuntime.cs
- XmlNamespaceDeclarationsAttribute.cs
- ComponentResourceManager.cs
- _ConnectOverlappedAsyncResult.cs
- AdornerLayer.cs
- XmlILAnnotation.cs
- CommandID.cs
- DateTimeParse.cs
- sqlpipe.cs
- SamlAction.cs
- DataGridViewLayoutData.cs
- ConnectionPoolManager.cs
- KeyEventArgs.cs
- EmbeddedMailObject.cs
- IsolatedStorageFilePermission.cs
- NavigatorOutput.cs
- FlowDocumentPageViewerAutomationPeer.cs
- ObjectParameter.cs
- LocationSectionRecord.cs
- XsdValidatingReader.cs
- ExceptionValidationRule.cs
- DBNull.cs
- XmlArrayItemAttributes.cs
- RightNameExpirationInfoPair.cs
- TreeNodeBindingCollection.cs
- EdmItemCollection.OcAssemblyCache.cs
- DataTemplateSelector.cs
- CellTreeNode.cs
- SqlParameter.cs
- ProfileProvider.cs
- NavigationExpr.cs
- XamlValidatingReader.cs
- SettingsPropertyValue.cs
- ItemContainerGenerator.cs
- AdCreatedEventArgs.cs
- DrawingVisual.cs
- DataGrid.cs
- BidPrivateBase.cs
- UpdateTranslator.cs
- UniformGrid.cs
- BackgroundWorker.cs
- PackageDigitalSignature.cs
- Marshal.cs
- PageCache.cs
- MouseGestureConverter.cs