Code:
/ DotNET / DotNET / 8.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
- HwndSourceParameters.cs
- NetNamedPipeBinding.cs
- DisplayNameAttribute.cs
- SrgsElement.cs
- PipelineModuleStepContainer.cs
- WebPartVerb.cs
- ModelTreeEnumerator.cs
- IResourceProvider.cs
- DesignTimeTemplateParser.cs
- PersonalizableTypeEntry.cs
- UrlAuthorizationModule.cs
- CDSCollectionETWBCLProvider.cs
- MatrixAnimationUsingPath.cs
- SQLBytes.cs
- AutomationIdentifierGuids.cs
- Image.cs
- ConditionalAttribute.cs
- DetailsViewAutoFormat.cs
- wgx_sdk_version.cs
- IntSecurity.cs
- MenuBase.cs
- DispatcherHookEventArgs.cs
- Axis.cs
- FontResourceCache.cs
- _BasicClient.cs
- FloatSumAggregationOperator.cs
- SqlDependency.cs
- TypeSystemHelpers.cs
- COM2EnumConverter.cs
- JavaScriptSerializer.cs
- DataSvcMapFileSerializer.cs
- DataServiceConfiguration.cs
- SafeNativeMethods.cs
- TableItemPattern.cs
- HttpApplication.cs
- RemoteWebConfigurationHostServer.cs
- HeaderCollection.cs
- DataException.cs
- SettingsSavedEventArgs.cs
- xdrvalidator.cs
- Parallel.cs
- SmiTypedGetterSetter.cs
- ZipPackage.cs
- SecurityCapabilities.cs
- ObjectStateManagerMetadata.cs
- CheckableControlBaseAdapter.cs
- ModulesEntry.cs
- SignatureHelper.cs
- Module.cs
- BamlStream.cs
- SystemUdpStatistics.cs
- HttpResponse.cs
- TextChangedEventArgs.cs
- BulletedList.cs
- SudsWriter.cs
- NativeMethods.cs
- DbConnectionPoolOptions.cs
- PropertyTab.cs
- PlainXmlSerializer.cs
- TextParaLineResult.cs
- TextFormatterContext.cs
- VirtualDirectoryMapping.cs
- IListConverters.cs
- ImageSource.cs
- Symbol.cs
- WindowsEditBox.cs
- mongolianshape.cs
- SynchronizingStream.cs
- RelationshipManager.cs
- AbandonedMutexException.cs
- StandardToolWindows.cs
- ColorDialog.cs
- Package.cs
- LinqDataSourceUpdateEventArgs.cs
- TouchFrameEventArgs.cs
- MenuAutoFormat.cs
- SurrogateEncoder.cs
- RegexCaptureCollection.cs
- TextAutomationPeer.cs
- XsltArgumentList.cs
- IntegerFacetDescriptionElement.cs
- SiteMapSection.cs
- CompiledWorkflowDefinitionContext.cs
- XmlChildEnumerator.cs
- ThousandthOfEmRealDoubles.cs
- XmlNodeChangedEventArgs.cs
- MaterialGroup.cs
- CommandBindingCollection.cs
- SafePointer.cs
- SoapEnumAttribute.cs
- MetadataException.cs
- NamespaceInfo.cs
- hresults.cs
- QilInvokeEarlyBound.cs
- RemotingClientProxy.cs
- Pts.cs
- X509Extension.cs
- DragAssistanceManager.cs
- DeclarativeCatalogPartDesigner.cs
- SchemaTypeEmitter.cs