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
- WinEventTracker.cs
- EntityViewGenerationAttribute.cs
- TextEditorDragDrop.cs
- TextEndOfSegment.cs
- PropertyIDSet.cs
- IsolatedStorageFile.cs
- PropagatorResult.cs
- LicFileLicenseProvider.cs
- UnitySerializationHolder.cs
- ButtonFieldBase.cs
- AnonymousIdentificationSection.cs
- Misc.cs
- Dynamic.cs
- MD5CryptoServiceProvider.cs
- Rect3D.cs
- ProtocolsConfigurationHandler.cs
- FormViewCommandEventArgs.cs
- RenderData.cs
- UserControlParser.cs
- SystemIPv4InterfaceProperties.cs
- ReplyChannelBinder.cs
- ClassImporter.cs
- ExpressionPrefixAttribute.cs
- DataConnectionHelper.cs
- DbExpressionVisitor.cs
- TrimSurroundingWhitespaceAttribute.cs
- MembershipUser.cs
- ApplicationBuildProvider.cs
- Debugger.cs
- ReservationNotFoundException.cs
- Blend.cs
- QueryTaskGroupState.cs
- TimeoutException.cs
- SharedConnectionWorkflowTransactionService.cs
- LinqDataSourceDisposeEventArgs.cs
- DataGridAddNewRow.cs
- DataGridTableCollection.cs
- HtmlHistory.cs
- XmlCDATASection.cs
- FixedFindEngine.cs
- EmissiveMaterial.cs
- SimplePropertyEntry.cs
- WindowsStatic.cs
- ArgumentOutOfRangeException.cs
- Menu.cs
- Menu.cs
- odbcmetadatafactory.cs
- GridViewUpdatedEventArgs.cs
- WindowsSysHeader.cs
- SourceSwitch.cs
- DoubleLinkList.cs
- XmlSchemaImport.cs
- AssemblyBuilderData.cs
- GuidelineSet.cs
- BaseTemplateParser.cs
- CompilerWrapper.cs
- StandardBindingOptionalReliableSessionElement.cs
- RouteParser.cs
- BufferedStream.cs
- WrapPanel.cs
- IBuiltInEvidence.cs
- Zone.cs
- WrappedOptions.cs
- DefaultTextStore.cs
- LeafCellTreeNode.cs
- PointKeyFrameCollection.cs
- EntityDesignerDataSourceView.cs
- QueryCacheEntry.cs
- Grid.cs
- SafeProcessHandle.cs
- CompoundFileDeflateTransform.cs
- DataGridViewRowCollection.cs
- TTSEngineProxy.cs
- CompatibleIComparer.cs
- StateMachineSubscriptionManager.cs
- VisualBasicDesignerHelper.cs
- InputElement.cs
- StringAnimationBase.cs
- MetricEntry.cs
- ListItemsCollectionEditor.cs
- ParentQuery.cs
- RootBrowserWindow.cs
- SubstitutionList.cs
- DataGridViewDataConnection.cs
- Globals.cs
- WebPartDisplayModeCollection.cs
- XPathMessageContext.cs
- OracleConnectionFactory.cs
- FastEncoder.cs
- WebPartVerbCollection.cs
- TdsRecordBufferSetter.cs
- ChangesetResponse.cs
- BaseDataList.cs
- XsdDateTime.cs
- PriorityBinding.cs
- AlphabeticalEnumConverter.cs
- PropertyDescriptorGridEntry.cs
- IxmlLineInfo.cs
- MetadataItem_Static.cs
- MessageDecoder.cs