Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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; } } } }
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StrokeCollectionDefaultValueFactory.cs
- BinHexEncoding.cs
- XmlRootAttribute.cs
- PcmConverter.cs
- StorageModelBuildProvider.cs
- SHA256Managed.cs
- WorkItem.cs
- DataFormats.cs
- CapabilitiesState.cs
- NotifyIcon.cs
- DataServiceRequest.cs
- ToolboxComponentsCreatingEventArgs.cs
- loginstatus.cs
- AttachInfo.cs
- TemplateEditingVerb.cs
- LogicalExpressionTypeConverter.cs
- LassoHelper.cs
- ExpressionBuilder.cs
- Rule.cs
- RangeValidator.cs
- ArgumentReference.cs
- ParallelTimeline.cs
- TableRowCollection.cs
- XmlCharCheckingWriter.cs
- GeneralTransform3DTo2D.cs
- NativeMethods.cs
- PrintController.cs
- DoubleUtil.cs
- LogExtent.cs
- _Semaphore.cs
- XmlBindingWorker.cs
- LinqDataSourceDeleteEventArgs.cs
- ExpressionLexer.cs
- CalendarDay.cs
- WebResponse.cs
- WebPartConnectionsEventArgs.cs
- SchemaInfo.cs
- RelationshipSet.cs
- JsonObjectDataContract.cs
- BaseProcessor.cs
- DateTimeFormat.cs
- TableRow.cs
- FormViewUpdatedEventArgs.cs
- SchemaObjectWriter.cs
- SettingsContext.cs
- SmiSettersStream.cs
- DefaultProxySection.cs
- SeekStoryboard.cs
- ECDsaCng.cs
- WasAdminWrapper.cs
- CodeTypeParameterCollection.cs
- __Filters.cs
- Helpers.cs
- XmlSchemaSimpleTypeRestriction.cs
- CreateUserWizardAutoFormat.cs
- TypeInfo.cs
- LocalClientSecuritySettings.cs
- _HTTPDateParse.cs
- TryCatchDesigner.xaml.cs
- QuaternionValueSerializer.cs
- ReflectionTypeLoadException.cs
- DetailsViewDeletedEventArgs.cs
- OracleRowUpdatedEventArgs.cs
- ComAdminWrapper.cs
- UrlMappingsModule.cs
- DateTimeOffsetStorage.cs
- SettingsPropertyCollection.cs
- ResXFileRef.cs
- TableLayoutStyle.cs
- Win32Exception.cs
- CompilationSection.cs
- TreeIterator.cs
- BuildProvider.cs
- BreakRecordTable.cs
- SystemFonts.cs
- Win32MouseDevice.cs
- ServiceOperationParameter.cs
- ClientOptions.cs
- ImportOptions.cs
- WizardStepBase.cs
- AuditLogLocation.cs
- ListViewEditEventArgs.cs
- XmlMessageFormatter.cs
- TrackingStringDictionary.cs
- DataMember.cs
- CatalogZoneDesigner.cs
- CreateInstanceBinder.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- CapabilitiesUse.cs
- ResourceType.cs
- DeploymentSection.cs
- ScrollEvent.cs
- StorageScalarPropertyMapping.cs
- ParenExpr.cs
- XPathDocument.cs
- DecimalFormatter.cs
- OperatorExpressions.cs
- HeaderCollection.cs
- ListenerConfig.cs
- SatelliteContractVersionAttribute.cs