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
- XmlNamespaceDeclarationsAttribute.cs
- SettingsPropertyNotFoundException.cs
- MergePropertyDescriptor.cs
- XslTransformFileEditor.cs
- BindingBase.cs
- HyperLinkStyle.cs
- WizardForm.cs
- FileStream.cs
- MergeEnumerator.cs
- ObjectDataSourceView.cs
- TimeoutValidationAttribute.cs
- List.cs
- parserscommon.cs
- FragmentQuery.cs
- SmtpNtlmAuthenticationModule.cs
- ProtocolElement.cs
- XmlQueryOutput.cs
- Pair.cs
- XsltConvert.cs
- DataGridViewTextBoxCell.cs
- URLMembershipCondition.cs
- ActivityMarkupSerializer.cs
- TimeEnumHelper.cs
- formatter.cs
- RepeatBehavior.cs
- DefaultValueConverter.cs
- XmlAttributeAttribute.cs
- DeclarativeExpressionConditionDeclaration.cs
- HttpCachePolicy.cs
- ArgIterator.cs
- FileVersionInfo.cs
- DataGridTextBoxColumn.cs
- XmlSchemaNotation.cs
- BaseTreeIterator.cs
- ObjectPropertyMapping.cs
- Mappings.cs
- HwndAppCommandInputProvider.cs
- WebScriptServiceHost.cs
- XmlIlGenerator.cs
- GraphicsContainer.cs
- CustomLineCap.cs
- MetaModel.cs
- Psha1DerivedKeyGenerator.cs
- EntityException.cs
- MarkupCompilePass2.cs
- ContentFilePart.cs
- ServiceObjectContainer.cs
- X509Certificate.cs
- FlatButtonAppearance.cs
- SizeConverter.cs
- FormViewRow.cs
- MessageBuffer.cs
- Listbox.cs
- SqlXmlStorage.cs
- TrackingProfile.cs
- XmlNamedNodeMap.cs
- basenumberconverter.cs
- Soap.cs
- dtdvalidator.cs
- ImmutableAssemblyCacheEntry.cs
- SafeSecurityHandles.cs
- DocumentScope.cs
- HttpListenerContext.cs
- RSAOAEPKeyExchangeDeformatter.cs
- Parameter.cs
- ResourceSet.cs
- ApplicationSettingsBase.cs
- DesignTimeVisibleAttribute.cs
- WebPartMovingEventArgs.cs
- BuildResult.cs
- UnsafeMethods.cs
- SmiEventSink_DeferedProcessing.cs
- SqlConnectionPoolGroupProviderInfo.cs
- VariantWrapper.cs
- RenderingBiasValidation.cs
- LoadRetryStrategyFactory.cs
- WbemProvider.cs
- ScriptControlDescriptor.cs
- ClientUtils.cs
- Win32SafeHandles.cs
- PopOutPanel.cs
- ProfileSettings.cs
- RangeExpression.cs
- DataExchangeServiceBinder.cs
- Enum.cs
- EntityDataSourceColumn.cs
- ApplicationCommands.cs
- ToolboxDataAttribute.cs
- Visual.cs
- CollectionsUtil.cs
- ValidatorCollection.cs
- XmlSchemaExternal.cs
- ProxyGenerator.cs
- ISessionStateStore.cs
- XmlSchemaObjectCollection.cs
- mediaclock.cs
- ErrorView.xaml.cs
- ElementProxy.cs
- InstanceDataCollection.cs
- FrameworkContextData.cs