Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / clr / src / BCL / System / Text / DecoderExceptionFallback.cs / 1 / DecoderExceptionFallback.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
// DecoderExceptionFallback.cs
//
namespace System.Text
{
using System;
using System.Runtime.Serialization;
using System.Globalization;
[Serializable]
public sealed class DecoderExceptionFallback : DecoderFallback
{
// Construction
public DecoderExceptionFallback()
{
}
public override DecoderFallbackBuffer CreateFallbackBuffer()
{
return new DecoderExceptionFallbackBuffer();
}
// Maximum number of characters that this instance of this fallback could return
public override int MaxCharCount
{
get
{
return 0;
}
}
public override bool Equals(Object value)
{
DecoderExceptionFallback that = value as DecoderExceptionFallback;
if (that != null)
{
return (true);
}
return (false);
}
public override int GetHashCode()
{
return 879;
}
}
public sealed class DecoderExceptionFallbackBuffer : DecoderFallbackBuffer
{
public override bool Fallback(byte[] bytesUnknown, int index)
{
Throw(bytesUnknown, index);
return true;
}
public override char GetNextChar()
{
return (char)0;
}
public override bool MovePrevious()
{
// Exception fallback doesn't have anywhere to back up to.
return false;
}
// Exceptions are always empty
public override int Remaining
{
get
{
return 0;
}
}
private void Throw(byte[] bytesUnknown, int index)
{
// Create a string representation of our bytes.
StringBuilder strBytes = new StringBuilder(bytesUnknown.Length * 3);
int i;
for (i = 0; i < bytesUnknown.Length && i < 20; i++)
{
strBytes.Append("[");
strBytes.Append(bytesUnknown[i].ToString("X2", CultureInfo.InvariantCulture));
strBytes.Append("]");
}
// In case the string's really long
if (i == 20)
strBytes.Append(" ...");
// Known index
throw new DecoderFallbackException(
Environment.GetResourceString("Argument_InvalidCodePageBytesIndex",
strBytes, index), bytesUnknown, index);
}
}
// Exception for decoding unknown byte sequences.
[Serializable]
public sealed class DecoderFallbackException : ArgumentException
{
byte[] bytesUnknown = null;
int index = 0;
public DecoderFallbackException()
: base(Environment.GetResourceString("Arg_ArgumentException"))
{
SetErrorCode(__HResults.COR_E_ARGUMENT);
}
public DecoderFallbackException(String message)
: base(message)
{
SetErrorCode(__HResults.COR_E_ARGUMENT);
}
public DecoderFallbackException(String message, Exception innerException)
: base(message, innerException)
{
SetErrorCode(__HResults.COR_E_ARGUMENT);
}
internal DecoderFallbackException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}
public DecoderFallbackException(
String message, byte[] bytesUnknown, int index) : base(message)
{
this.bytesUnknown = bytesUnknown;
this.index = index;
}
public byte[] BytesUnknown
{
get
{
return (bytesUnknown);
}
}
public int Index
{
get
{
return this.index;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
// DecoderExceptionFallback.cs
//
namespace System.Text
{
using System;
using System.Runtime.Serialization;
using System.Globalization;
[Serializable]
public sealed class DecoderExceptionFallback : DecoderFallback
{
// Construction
public DecoderExceptionFallback()
{
}
public override DecoderFallbackBuffer CreateFallbackBuffer()
{
return new DecoderExceptionFallbackBuffer();
}
// Maximum number of characters that this instance of this fallback could return
public override int MaxCharCount
{
get
{
return 0;
}
}
public override bool Equals(Object value)
{
DecoderExceptionFallback that = value as DecoderExceptionFallback;
if (that != null)
{
return (true);
}
return (false);
}
public override int GetHashCode()
{
return 879;
}
}
public sealed class DecoderExceptionFallbackBuffer : DecoderFallbackBuffer
{
public override bool Fallback(byte[] bytesUnknown, int index)
{
Throw(bytesUnknown, index);
return true;
}
public override char GetNextChar()
{
return (char)0;
}
public override bool MovePrevious()
{
// Exception fallback doesn't have anywhere to back up to.
return false;
}
// Exceptions are always empty
public override int Remaining
{
get
{
return 0;
}
}
private void Throw(byte[] bytesUnknown, int index)
{
// Create a string representation of our bytes.
StringBuilder strBytes = new StringBuilder(bytesUnknown.Length * 3);
int i;
for (i = 0; i < bytesUnknown.Length && i < 20; i++)
{
strBytes.Append("[");
strBytes.Append(bytesUnknown[i].ToString("X2", CultureInfo.InvariantCulture));
strBytes.Append("]");
}
// In case the string's really long
if (i == 20)
strBytes.Append(" ...");
// Known index
throw new DecoderFallbackException(
Environment.GetResourceString("Argument_InvalidCodePageBytesIndex",
strBytes, index), bytesUnknown, index);
}
}
// Exception for decoding unknown byte sequences.
[Serializable]
public sealed class DecoderFallbackException : ArgumentException
{
byte[] bytesUnknown = null;
int index = 0;
public DecoderFallbackException()
: base(Environment.GetResourceString("Arg_ArgumentException"))
{
SetErrorCode(__HResults.COR_E_ARGUMENT);
}
public DecoderFallbackException(String message)
: base(message)
{
SetErrorCode(__HResults.COR_E_ARGUMENT);
}
public DecoderFallbackException(String message, Exception innerException)
: base(message, innerException)
{
SetErrorCode(__HResults.COR_E_ARGUMENT);
}
internal DecoderFallbackException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}
public DecoderFallbackException(
String message, byte[] bytesUnknown, int index) : base(message)
{
this.bytesUnknown = bytesUnknown;
this.index = index;
}
public byte[] BytesUnknown
{
get
{
return (bytesUnknown);
}
}
public int Index
{
get
{
return this.index;
}
}
}
}
// 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
- EntityCommand.cs
- MexServiceChannelBuilder.cs
- DesignBindingPicker.cs
- InternalResources.cs
- LoginUtil.cs
- Point4D.cs
- LineGeometry.cs
- ToolStripContentPanel.cs
- EditorZone.cs
- SystemGatewayIPAddressInformation.cs
- TraceHandlerErrorFormatter.cs
- SamlDoNotCacheCondition.cs
- ViewStateModeByIdAttribute.cs
- DynamicObjectAccessor.cs
- XamlParser.cs
- UmAlQuraCalendar.cs
- VectorKeyFrameCollection.cs
- ProviderUtil.cs
- PassportAuthentication.cs
- DBCSCodePageEncoding.cs
- AuthenticationManager.cs
- OdbcError.cs
- WebPartEditVerb.cs
- VirtualizingStackPanel.cs
- CookieParameter.cs
- PropagatorResult.cs
- TableLayoutStyleCollection.cs
- StatusCommandUI.cs
- EncryptedData.cs
- Privilege.cs
- ConfigurationPropertyCollection.cs
- DataGridViewCellStyle.cs
- ProgressBar.cs
- DataGridViewImageColumn.cs
- TTSVoice.cs
- FreezableOperations.cs
- ClientScriptManagerWrapper.cs
- DataObjectEventArgs.cs
- TransformConverter.cs
- ArglessEventHandlerProxy.cs
- ClientRoleProvider.cs
- DesignerDataStoredProcedure.cs
- XmlSchemaSimpleTypeUnion.cs
- NotCondition.cs
- ToolboxItemImageConverter.cs
- MobilePage.cs
- dtdvalidator.cs
- BmpBitmapEncoder.cs
- SelectionWordBreaker.cs
- ComponentRenameEvent.cs
- EntityContainer.cs
- SqlBooleanizer.cs
- SQLCharsStorage.cs
- XamlReaderHelper.cs
- StickyNoteAnnotations.cs
- MultiAsyncResult.cs
- CaseInsensitiveHashCodeProvider.cs
- ParseChildrenAsPropertiesAttribute.cs
- SqlFormatter.cs
- ProcessThreadCollection.cs
- CompositionTarget.cs
- DecoderBestFitFallback.cs
- GeometryHitTestResult.cs
- MouseWheelEventArgs.cs
- ServiceAppDomainAssociationProvider.cs
- EditingMode.cs
- BindingListCollectionView.cs
- COSERVERINFO.cs
- KernelTypeValidation.cs
- OutputCacheSettingsSection.cs
- DocumentGridContextMenu.cs
- DocumentSequence.cs
- TextDecoration.cs
- OutputCacheSettingsSection.cs
- XmlProcessingInstruction.cs
- DeploymentExceptionMapper.cs
- SimpleHandlerFactory.cs
- ProxyWebPartConnectionCollection.cs
- CommentEmitter.cs
- UserUseLicenseDictionaryLoader.cs
- ApplicationCommands.cs
- DBAsyncResult.cs
- DataGridViewCellConverter.cs
- Rect3DConverter.cs
- UnsignedPublishLicense.cs
- WebBrowser.cs
- PropertyEmitter.cs
- DataGridItemCollection.cs
- ArgumentValueSerializer.cs
- UrlPropertyAttribute.cs
- OleTxTransaction.cs
- WebPart.cs
- IndicShape.cs
- Marshal.cs
- DecoderFallback.cs
- OutKeywords.cs
- AppearanceEditorPart.cs
- XmlSchemaAttributeGroupRef.cs
- ProfileModule.cs
- Win32PrintDialog.cs