Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / clr / src / BCL / System / Text / EncoderExceptionFallback.cs / 1 / EncoderExceptionFallback.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
// EncoderExceptionFallback.cs
namespace System.Text
{
using System;
using System.Runtime.Serialization;
[Serializable]
public sealed class EncoderExceptionFallback : EncoderFallback
{
// Construction
public EncoderExceptionFallback()
{
}
public override EncoderFallbackBuffer CreateFallbackBuffer()
{
return new EncoderExceptionFallbackBuffer();
}
// 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)
{
EncoderExceptionFallback that = value as EncoderExceptionFallback;
if (that != null)
{
return (true);
}
return (false);
}
public override int GetHashCode()
{
return 654;
}
}
public sealed class EncoderExceptionFallbackBuffer : EncoderFallbackBuffer
{
public override bool Fallback(char charUnknown, int index)
{
// Fall back our char
throw new EncoderFallbackException(
Environment.GetResourceString("Argument_InvalidCodePageConversionIndex",
(int)charUnknown, index), charUnknown, index);
}
public override bool Fallback(char charUnknownHigh, char charUnknownLow, int index)
{
if (!Char.IsHighSurrogate(charUnknownHigh))
{
throw new ArgumentOutOfRangeException("charUnknownHigh",
Environment.GetResourceString("ArgumentOutOfRange_Range",
0xD800, 0xDBFF));
}
if (!Char.IsLowSurrogate(charUnknownLow))
{
throw new ArgumentOutOfRangeException("CharUnknownLow",
Environment.GetResourceString("ArgumentOutOfRange_Range",
0xDC00, 0xDFFF));
}
int iTemp = Char.ConvertToUtf32(charUnknownHigh, charUnknownLow);
// Fall back our char
throw new EncoderFallbackException(
Environment.GetResourceString("Argument_InvalidCodePageConversionIndex",
iTemp, index), charUnknownHigh, charUnknownLow, index);
}
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;
}
}
}
[Serializable]
public sealed class EncoderFallbackException : ArgumentException
{
char charUnknown;
char charUnknownHigh;
char charUnknownLow;
int index;
public EncoderFallbackException()
: base(Environment.GetResourceString("Arg_ArgumentException"))
{
SetErrorCode(__HResults.COR_E_ARGUMENT);
}
public EncoderFallbackException(String message)
: base(message)
{
SetErrorCode(__HResults.COR_E_ARGUMENT);
}
public EncoderFallbackException(String message, Exception innerException)
: base(message, innerException)
{
SetErrorCode(__HResults.COR_E_ARGUMENT);
}
internal EncoderFallbackException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}
internal EncoderFallbackException(
String message, char charUnknown, int index) : base(message)
{
this.charUnknown = charUnknown;
this.index = index;
}
internal EncoderFallbackException(
String message, char charUnknownHigh, char charUnknownLow, int index) : base(message)
{
if (!Char.IsHighSurrogate(charUnknownHigh))
{
throw new ArgumentOutOfRangeException("charUnknownHigh",
Environment.GetResourceString("ArgumentOutOfRange_Range",
0xD800, 0xDBFF));
}
if (!Char.IsLowSurrogate(charUnknownLow))
{
throw new ArgumentOutOfRangeException("CharUnknownLow",
Environment.GetResourceString("ArgumentOutOfRange_Range",
0xDC00, 0xDFFF));
}
this.charUnknownHigh = charUnknownHigh;
this.charUnknownLow = charUnknownLow;
this.index = index;
}
public char CharUnknown
{
get
{
return (charUnknown);
}
}
public char CharUnknownHigh
{
get
{
return (charUnknownHigh);
}
}
public char CharUnknownLow
{
get
{
return (charUnknownLow);
}
}
public int Index
{
get
{
return index;
}
}
// Return true if the unknown character is a surrogate pair.
public bool IsUnknownSurrogate()
{
return (this.charUnknownHigh != '\0');
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CodeAssignStatement.cs
- DataControlPagerLinkButton.cs
- IncrementalHitTester.cs
- FixedDocument.cs
- EnvironmentPermission.cs
- VBIdentifierNameEditor.cs
- Process.cs
- SqlMethodCallConverter.cs
- WindowInteractionStateTracker.cs
- UIElementParaClient.cs
- PieceDirectory.cs
- XmlSchemaSimpleTypeList.cs
- CapabilitiesAssignment.cs
- ConfigXmlAttribute.cs
- GradientBrush.cs
- SamlSerializer.cs
- XPathChildIterator.cs
- DataGridItem.cs
- WebUtil.cs
- RegexRunner.cs
- IISMapPath.cs
- _Win32.cs
- ReadWriteObjectLock.cs
- CalendarAutomationPeer.cs
- _ConnectStream.cs
- Decoder.cs
- WindowInteropHelper.cs
- WindowsToolbarAsMenu.cs
- RequestQueryProcessor.cs
- XmlDataSourceNodeDescriptor.cs
- WebZone.cs
- CacheOutputQuery.cs
- PreservationFileReader.cs
- PageContent.cs
- ArrayTypeMismatchException.cs
- AppearanceEditorPart.cs
- ScrollChrome.cs
- TriState.cs
- VideoDrawing.cs
- MatrixUtil.cs
- KeyboardDevice.cs
- WebCategoryAttribute.cs
- SqlCacheDependencySection.cs
- LinearQuaternionKeyFrame.cs
- ParserOptions.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- ResolveCriteria.cs
- WebSysDescriptionAttribute.cs
- ListViewGroupItemCollection.cs
- RectKeyFrameCollection.cs
- PermissionSet.cs
- DocobjHost.cs
- NamespaceQuery.cs
- LogWriteRestartAreaAsyncResult.cs
- ModuleBuilderData.cs
- ToolStrip.cs
- TableDetailsCollection.cs
- BitmapEffectvisualstate.cs
- IPCCacheManager.cs
- coordinatorfactory.cs
- RowVisual.cs
- BooleanKeyFrameCollection.cs
- CodeBinaryOperatorExpression.cs
- OptimisticConcurrencyException.cs
- ExceptionRoutedEventArgs.cs
- BookmarkList.cs
- SiteMapNodeItem.cs
- StopStoryboard.cs
- NameSpaceExtractor.cs
- ComContractElementCollection.cs
- ContentDisposition.cs
- DisposableCollectionWrapper.cs
- UnsafeNativeMethods.cs
- XmlSchemaComplexContent.cs
- HttpServerUtilityBase.cs
- MostlySingletonList.cs
- IxmlLineInfo.cs
- CriticalExceptions.cs
- TextRangeBase.cs
- MergablePropertyAttribute.cs
- UIPermission.cs
- EventEntry.cs
- RelAssertionDirectKeyIdentifierClause.cs
- RenameRuleObjectDialog.Designer.cs
- MobileComponentEditorPage.cs
- AstTree.cs
- DataControlFieldCell.cs
- SerializationObjectManager.cs
- DataServiceRequestOfT.cs
- ClientConfigurationHost.cs
- DecimalConstantAttribute.cs
- TokenBasedSet.cs
- ReadOnlyHierarchicalDataSource.cs
- SiteMapNodeItemEventArgs.cs
- FileUpload.cs
- RuleSettingsCollection.cs
- UriExt.cs
- PointHitTestParameters.cs
- OutputCacheSection.cs
- DataStreams.cs