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
- MarshalByValueComponent.cs
- CodeNamespaceImport.cs
- ConnectivityStatus.cs
- TabItemAutomationPeer.cs
- ColumnTypeConverter.cs
- PeerHopCountAttribute.cs
- InkCanvas.cs
- TextRangeProviderWrapper.cs
- XPathMultyIterator.cs
- Internal.cs
- EntityKey.cs
- ComplexTypeEmitter.cs
- ImageButton.cs
- SafeMemoryMappedFileHandle.cs
- DBBindings.cs
- MostlySingletonList.cs
- ListItemDetailViewAttribute.cs
- WebConfigurationHost.cs
- MissingMemberException.cs
- QueryOperator.cs
- SmtpTransport.cs
- OrderedDictionaryStateHelper.cs
- TextTreeNode.cs
- SelectedDatesCollection.cs
- TypeValidationEventArgs.cs
- DataGridViewColumnEventArgs.cs
- Automation.cs
- GenericsInstances.cs
- Parser.cs
- NotifyInputEventArgs.cs
- CryptoHandle.cs
- ClientConfigurationHost.cs
- ObjectStateFormatter.cs
- Int32Rect.cs
- PropertyRef.cs
- webbrowsersite.cs
- CqlWriter.cs
- MetadataPropertyAttribute.cs
- DataProtectionSecurityStateEncoder.cs
- WaitHandle.cs
- EventProxy.cs
- ScriptRegistrationManager.cs
- ColumnBinding.cs
- EdmError.cs
- Variant.cs
- httpserverutility.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- Variant.cs
- ProfessionalColors.cs
- UpdatePanel.cs
- Int16Animation.cs
- ClientProxyGenerator.cs
- MsdtcClusterUtils.cs
- TextSpanModifier.cs
- OutputCacheModule.cs
- DataBindingHandlerAttribute.cs
- HttpResponseBase.cs
- SolidBrush.cs
- ParagraphResult.cs
- UserControlBuildProvider.cs
- ControlUtil.cs
- IDispatchConstantAttribute.cs
- DataGridViewCellMouseEventArgs.cs
- DataQuery.cs
- WebPartConnectionsConnectVerb.cs
- OleStrCAMarshaler.cs
- DataServiceProcessingPipelineEventArgs.cs
- ConstrainedDataObject.cs
- GroupDescription.cs
- GZipDecoder.cs
- DataPagerField.cs
- ManualResetEvent.cs
- DataGridItemCollection.cs
- _CookieModule.cs
- XmlWriterSettings.cs
- CodeTypeParameter.cs
- SchemaComplexType.cs
- HttpModuleCollection.cs
- ElementMarkupObject.cs
- GeneratedContractType.cs
- Solver.cs
- InputMethodStateTypeInfo.cs
- ComboBoxItem.cs
- Normalization.cs
- FillErrorEventArgs.cs
- DataControlField.cs
- SerializationTrace.cs
- CommandEventArgs.cs
- BitmapEffectGroup.cs
- ByteStreamGeometryContext.cs
- AttributeQuery.cs
- SchemaNotation.cs
- ProcessModule.cs
- BaseDataListActionList.cs
- LogicalMethodInfo.cs
- Currency.cs
- CompensatableTransactionScopeActivityDesigner.cs
- ForwardPositionQuery.cs
- _SSPIWrapper.cs
- OdbcParameter.cs