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
- GeometryModel3D.cs
- RegexNode.cs
- X509InitiatorCertificateClientElement.cs
- TreeNode.cs
- SemanticResultKey.cs
- MaterialCollection.cs
- ListView.cs
- Component.cs
- TransformerConfigurationWizardBase.cs
- EpmContentSerializerBase.cs
- EventToken.cs
- DataRecord.cs
- NameValueFileSectionHandler.cs
- returneventsaver.cs
- PageStatePersister.cs
- TimeManager.cs
- AnnouncementDispatcherAsyncResult.cs
- TagPrefixAttribute.cs
- DataGridRowDetailsEventArgs.cs
- FrameworkPropertyMetadata.cs
- TableItemProviderWrapper.cs
- StreamInfo.cs
- EventLogPermission.cs
- SchemaName.cs
- WebControl.cs
- Int32AnimationUsingKeyFrames.cs
- ToolbarAUtomationPeer.cs
- XmlCharCheckingWriter.cs
- StrongNameUtility.cs
- RootDesignerSerializerAttribute.cs
- MemoryStream.cs
- HttpPostProtocolImporter.cs
- GridViewColumnHeader.cs
- RTLAwareMessageBox.cs
- HighlightVisual.cs
- JumpTask.cs
- TypeSystem.cs
- EdmSchemaAttribute.cs
- DrawingGroup.cs
- Message.cs
- FileDialog.cs
- _DigestClient.cs
- AssemblyResourceLoader.cs
- PngBitmapDecoder.cs
- BindToObject.cs
- FilterEventArgs.cs
- WrappedIUnknown.cs
- PathFigureCollectionConverter.cs
- WrapPanel.cs
- XmlSchemaImporter.cs
- DrawingDrawingContext.cs
- ActivityLocationReferenceEnvironment.cs
- FrameworkContentElementAutomationPeer.cs
- FormsAuthentication.cs
- StandardBindingImporter.cs
- WebHeaderCollection.cs
- WebPartDescription.cs
- XPathNodeIterator.cs
- WindowProviderWrapper.cs
- SQLMoneyStorage.cs
- MediaContextNotificationWindow.cs
- InternalPermissions.cs
- PropertyGridDesigner.cs
- ReadContentAsBinaryHelper.cs
- Compress.cs
- XmlTextReader.cs
- ItemChangedEventArgs.cs
- Content.cs
- MailAddressCollection.cs
- CodeTypeOfExpression.cs
- ProviderBase.cs
- GenericAuthenticationEventArgs.cs
- WebPartMenu.cs
- DesignerVerb.cs
- CancellationTokenRegistration.cs
- userdatakeys.cs
- DataGridViewCellCancelEventArgs.cs
- FileUpload.cs
- StringPropertyBuilder.cs
- PerformanceCounterPermissionEntryCollection.cs
- OraclePermission.cs
- ConnectionStringsSection.cs
- ShaderRenderModeValidation.cs
- VisualStyleElement.cs
- OrderedDictionaryStateHelper.cs
- BrowserInteropHelper.cs
- IIS7UserPrincipal.cs
- SharedStatics.cs
- invalidudtexception.cs
- RectKeyFrameCollection.cs
- PriorityQueue.cs
- ComboBoxAutomationPeer.cs
- DesignTimeSiteMapProvider.cs
- MonitoringDescriptionAttribute.cs
- EventProviderWriter.cs
- CompModHelpers.cs
- HttpRequestWrapper.cs
- COM2ComponentEditor.cs
- TypedElement.cs
- ExpressionBinding.cs