Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- UInt16Converter.cs
- HyperLink.cs
- ProcessMonitor.cs
- HtmlValidatorAdapter.cs
- ListViewCancelEventArgs.cs
- CacheEntry.cs
- CompilerScope.Storage.cs
- ScrollPattern.cs
- AppendHelper.cs
- documentation.cs
- KeyManager.cs
- Int64Animation.cs
- SchemaNamespaceManager.cs
- WebBrowserBase.cs
- SessionState.cs
- TabControlEvent.cs
- CircleHotSpot.cs
- QilXmlWriter.cs
- IndexOutOfRangeException.cs
- BrowserDefinitionCollection.cs
- EditCommandColumn.cs
- DetailsViewDeletedEventArgs.cs
- SendKeys.cs
- Command.cs
- FieldBuilder.cs
- TagMapCollection.cs
- Expression.cs
- BitmapImage.cs
- SqlDataSourceSummaryPanel.cs
- DrawListViewItemEventArgs.cs
- TdsParser.cs
- ErrorFormatter.cs
- SuppressMergeCheckAttribute.cs
- MediaElement.cs
- TemplateControl.cs
- DataGridViewSelectedCellsAccessibleObject.cs
- JapaneseLunisolarCalendar.cs
- CachedBitmap.cs
- InputEventArgs.cs
- EditorBrowsableAttribute.cs
- MouseCaptureWithinProperty.cs
- SimpleTypeResolver.cs
- ObjectStateEntryDbDataRecord.cs
- GridEntry.cs
- TraceUtility.cs
- EdmFunction.cs
- DataTablePropertyDescriptor.cs
- TemplateContentLoader.cs
- IisTraceWebEventProvider.cs
- SetStateEventArgs.cs
- CodeIdentifiers.cs
- DES.cs
- FrameAutomationPeer.cs
- Contracts.cs
- LinqDataSourceView.cs
- ToolStripDropDownClosingEventArgs.cs
- TemplatePagerField.cs
- StatementContext.cs
- WorkflowTransactionOptions.cs
- NativeRightsManagementAPIsStructures.cs
- ApplicationProxyInternal.cs
- CharStorage.cs
- RegexBoyerMoore.cs
- LocationEnvironment.cs
- DataServiceHost.cs
- ScriptModule.cs
- ObjectListShowCommandsEventArgs.cs
- PictureBoxDesigner.cs
- QilGeneratorEnv.cs
- MatrixCamera.cs
- DataGridSortCommandEventArgs.cs
- BoundPropertyEntry.cs
- XmlSchemaExternal.cs
- PreservationFileWriter.cs
- IndexedSelectQueryOperator.cs
- Error.cs
- TransformValueSerializer.cs
- TextSchema.cs
- FontConverter.cs
- TypedTableHandler.cs
- XmlDataSourceView.cs
- SchemaTableOptionalColumn.cs
- XmlNodeList.cs
- CalendarKeyboardHelper.cs
- Baml2006ReaderContext.cs
- FrugalMap.cs
- TimeStampChecker.cs
- TextSpanModifier.cs
- ParallelDesigner.cs
- Image.cs
- SimpleHandlerBuildProvider.cs
- MarkupExtensionReturnTypeAttribute.cs
- MachineKeySection.cs
- SmiTypedGetterSetter.cs
- OracleConnectionString.cs
- Dump.cs
- BrowserInteropHelper.cs
- AuthenticatingEventArgs.cs
- CodeCompiler.cs
- EntityCommandExecutionException.cs