Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / clr / src / BCL / System / Text / DecoderExceptionFallback.cs / 1305376 / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Attributes.cs
- EntityFunctions.cs
- DesignerRegion.cs
- InputMethodStateTypeInfo.cs
- Mappings.cs
- CopyCodeAction.cs
- AttachedPropertyBrowsableAttribute.cs
- ThemeInfoAttribute.cs
- TheQuery.cs
- RouteParser.cs
- DataGridViewColumnStateChangedEventArgs.cs
- BitmapPalette.cs
- LinqDataSourceValidationException.cs
- ClientApiGenerator.cs
- SchemaImporter.cs
- Console.cs
- RegisteredScript.cs
- RowsCopiedEventArgs.cs
- PageAsyncTaskManager.cs
- MarshalByValueComponent.cs
- TagPrefixAttribute.cs
- RedirectionProxy.cs
- TransactionManager.cs
- CounterCreationDataCollection.cs
- PlanCompilerUtil.cs
- EditingCommands.cs
- XamlDesignerSerializationManager.cs
- IntSumAggregationOperator.cs
- DesignerActionUIService.cs
- AppSecurityManager.cs
- RelatedPropertyManager.cs
- ScaleTransform.cs
- ValueOfAction.cs
- DetailsViewDeletedEventArgs.cs
- DataSourceView.cs
- ConnectionStringSettingsCollection.cs
- HostedTcpTransportManager.cs
- SharedPerformanceCounter.cs
- Dynamic.cs
- FixedSchema.cs
- GridViewSelectEventArgs.cs
- AccessedThroughPropertyAttribute.cs
- SymLanguageVendor.cs
- BinaryCommonClasses.cs
- Mappings.cs
- SignedInfo.cs
- SiteMapHierarchicalDataSourceView.cs
- DbDataReader.cs
- HostedBindingBehavior.cs
- DebugView.cs
- DataServiceBehavior.cs
- EntityViewGenerationConstants.cs
- TypeLoadException.cs
- Matrix.cs
- ConnectionsZone.cs
- PageHandlerFactory.cs
- SessionParameter.cs
- SessionPageStateSection.cs
- DrawingVisualDrawingContext.cs
- DictionaryContent.cs
- TableAdapterManagerGenerator.cs
- PropertyCondition.cs
- CacheVirtualItemsEvent.cs
- PrintPreviewGraphics.cs
- SoapAttributeOverrides.cs
- SystemNetHelpers.cs
- DecimalKeyFrameCollection.cs
- ApplicationManager.cs
- ReaderContextStackData.cs
- TemplatePagerField.cs
- HttpConfigurationSystem.cs
- SettingsSection.cs
- OdbcDataReader.cs
- _IPv4Address.cs
- StringConverter.cs
- ContextActivityUtils.cs
- DPTypeDescriptorContext.cs
- wgx_commands.cs
- UniformGrid.cs
- SynchronizationLockException.cs
- WorkflowEnvironment.cs
- SystemUnicastIPAddressInformation.cs
- ValidationErrorInfo.cs
- TileBrush.cs
- XmlSchemaIdentityConstraint.cs
- NavigatorInput.cs
- DataSourceIDConverter.cs
- DiscoveryMessageSequence.cs
- TableRow.cs
- NativeMethodsCLR.cs
- CompositeCollection.cs
- AmbiguousMatchException.cs
- GridViewCellAutomationPeer.cs
- SigningProgress.cs
- XmlToDatasetMap.cs
- DropDownList.cs
- HeaderCollection.cs
- HtmlInputCheckBox.cs
- TraceContext.cs
- SmtpCommands.cs