Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / ndp / fx / src / XmlUtils / System / Xml / Xsl / XPath / XPathCompileException.cs / 1 / XPathCompileException.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System.Runtime.Serialization; using System.Security.Permissions; using System.Text; namespace System.Xml.Xsl.XPath { [Serializable] internal class XPathCompileException : XslLoadException { public string queryString; public int startChar; public int endChar; protected XPathCompileException(SerializationInfo info, StreamingContext context) : base(info, context) { queryString = (string)info.GetValue("QueryString", typeof(string)); startChar = (int) info.GetValue("StartChar" , typeof(int )); endChar = (int) info.GetValue("EndChar" , typeof(int )); } [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)] public override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); info.AddValue("QueryString", queryString); info.AddValue("StartChar" , startChar); info.AddValue("EndChar" , endChar); } internal XPathCompileException(string queryString, int startChar, int endChar, string resId, params string[] args) : base(resId, args) { this.queryString = queryString; this.startChar = startChar; this.endChar = endChar; } internal XPathCompileException(string resId, params string[] args) : base(resId, args) {} // queryString will be set later private enum TrimType { Left, Right, Middle, } // This function is used to prevent long quotations in error messages, SQLBUDT 222626 private static void AppendTrimmed(StringBuilder sb, string value, int startIndex, int count, TrimType trimType) { const int TrimSize = 32; const string TrimMarker = "..."; if (count <= TrimSize) { sb.Append(value, startIndex, count); } else { switch (trimType) { case TrimType.Left: sb.Append(TrimMarker); sb.Append(value, startIndex + count - TrimSize, TrimSize); break; case TrimType.Right: sb.Append(value, startIndex, TrimSize); sb.Append(TrimMarker); break; case TrimType.Middle: sb.Append(value, startIndex, TrimSize / 2); sb.Append(TrimMarker); sb.Append(value, startIndex + count - TrimSize / 2, TrimSize / 2); break; } } } internal string MarkOutError() { if (queryString == null || queryString.Trim(' ').Length == 0) { return null; } int len = endChar - startChar; StringBuilder sb = new StringBuilder(); AppendTrimmed(sb, queryString, 0, startChar, TrimType.Left); if (len > 0) { sb.Append(" -->"); AppendTrimmed(sb, queryString, startChar, len, TrimType.Middle); } sb.Append("<-- "); AppendTrimmed(sb, queryString, endChar, queryString.Length - endChar, TrimType.Right); return sb.ToString(); } internal override string FormatDetailedMessage() { string message = Message; string error = MarkOutError(); if (error != null && error.Length > 0) { if (message.Length > 0) { message += Environment.NewLine; } message += error; } return message; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- using System.Runtime.Serialization; using System.Security.Permissions; using System.Text; namespace System.Xml.Xsl.XPath { [Serializable] internal class XPathCompileException : XslLoadException { public string queryString; public int startChar; public int endChar; protected XPathCompileException(SerializationInfo info, StreamingContext context) : base(info, context) { queryString = (string)info.GetValue("QueryString", typeof(string)); startChar = (int) info.GetValue("StartChar" , typeof(int )); endChar = (int) info.GetValue("EndChar" , typeof(int )); } [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)] public override void GetObjectData(SerializationInfo info, StreamingContext context) { base.GetObjectData(info, context); info.AddValue("QueryString", queryString); info.AddValue("StartChar" , startChar); info.AddValue("EndChar" , endChar); } internal XPathCompileException(string queryString, int startChar, int endChar, string resId, params string[] args) : base(resId, args) { this.queryString = queryString; this.startChar = startChar; this.endChar = endChar; } internal XPathCompileException(string resId, params string[] args) : base(resId, args) {} // queryString will be set later private enum TrimType { Left, Right, Middle, } // This function is used to prevent long quotations in error messages, SQLBUDT 222626 private static void AppendTrimmed(StringBuilder sb, string value, int startIndex, int count, TrimType trimType) { const int TrimSize = 32; const string TrimMarker = "..."; if (count <= TrimSize) { sb.Append(value, startIndex, count); } else { switch (trimType) { case TrimType.Left: sb.Append(TrimMarker); sb.Append(value, startIndex + count - TrimSize, TrimSize); break; case TrimType.Right: sb.Append(value, startIndex, TrimSize); sb.Append(TrimMarker); break; case TrimType.Middle: sb.Append(value, startIndex, TrimSize / 2); sb.Append(TrimMarker); sb.Append(value, startIndex + count - TrimSize / 2, TrimSize / 2); break; } } } internal string MarkOutError() { if (queryString == null || queryString.Trim(' ').Length == 0) { return null; } int len = endChar - startChar; StringBuilder sb = new StringBuilder(); AppendTrimmed(sb, queryString, 0, startChar, TrimType.Left); if (len > 0) { sb.Append(" -->"); AppendTrimmed(sb, queryString, startChar, len, TrimType.Middle); } sb.Append("<-- "); AppendTrimmed(sb, queryString, endChar, queryString.Length - endChar, TrimType.Right); return sb.ToString(); } internal override string FormatDetailedMessage() { string message = Message; string error = MarkOutError(); if (error != null && error.Length > 0) { if (message.Length > 0) { message += Environment.NewLine; } message += error; } return message; } } } // 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
- FormViewInsertEventArgs.cs
- HttpCapabilitiesBase.cs
- ZipIOModeEnforcingStream.cs
- HtmlEmptyTagControlBuilder.cs
- DrawingContextDrawingContextWalker.cs
- MembershipSection.cs
- XmlSchemaChoice.cs
- PackWebRequestFactory.cs
- TrustLevelCollection.cs
- Normalization.cs
- EdmItemCollection.cs
- EventLogEntryCollection.cs
- UIPermission.cs
- ToggleButtonAutomationPeer.cs
- SystemIPInterfaceStatistics.cs
- ToolStripSeparatorRenderEventArgs.cs
- ParentUndoUnit.cs
- RenderData.cs
- Stack.cs
- DictionaryEditChange.cs
- ObjectTag.cs
- WindowsRegion.cs
- CancelEventArgs.cs
- ObjectListCommandEventArgs.cs
- ScriptReferenceEventArgs.cs
- VisualStyleRenderer.cs
- RadioButtonBaseAdapter.cs
- UnmanagedHandle.cs
- WebConfigurationHostFileChange.cs
- DelayedRegex.cs
- Literal.cs
- QualifiedCellIdBoolean.cs
- SecurityTokenException.cs
- WindowsFormsHostPropertyMap.cs
- KeyValueConfigurationElement.cs
- GeneralTransform.cs
- UserPersonalizationStateInfo.cs
- RadioButtonStandardAdapter.cs
- DocumentViewerAutomationPeer.cs
- SerializationTrace.cs
- nulltextnavigator.cs
- LinqDataSourceValidationException.cs
- SafeCryptContextHandle.cs
- XmlAutoDetectWriter.cs
- LabelLiteral.cs
- DecimalConstantAttribute.cs
- InkCanvasSelectionAdorner.cs
- RuleInfoComparer.cs
- CqlParser.cs
- RenameRuleObjectDialog.cs
- AdCreatedEventArgs.cs
- Button.cs
- XPathPatternBuilder.cs
- NCryptNative.cs
- CodeArrayIndexerExpression.cs
- DataControlFieldCollection.cs
- JumpPath.cs
- TextBox.cs
- ContractReference.cs
- DbParameterCollectionHelper.cs
- SortDescription.cs
- XPathScanner.cs
- ThemeDictionaryExtension.cs
- ListViewGroupConverter.cs
- UnSafeCharBuffer.cs
- EmbeddedMailObject.cs
- PageTrueTypeFont.cs
- ParameterElementCollection.cs
- DataControlFieldTypeEditor.cs
- ResourcePermissionBaseEntry.cs
- ObjectFullSpanRewriter.cs
- DesignerSerializerAttribute.cs
- PipelineModuleStepContainer.cs
- TextRangeEditLists.cs
- InnerItemCollectionView.cs
- XmlObjectSerializerContext.cs
- SendParametersContent.cs
- TextProviderWrapper.cs
- Menu.cs
- CharStorage.cs
- PackagePart.cs
- LayoutManager.cs
- BufferedGraphicsContext.cs
- DataServiceClientException.cs
- BitmapEffect.cs
- Completion.cs
- SourceChangedEventArgs.cs
- SqlNotificationRequest.cs
- ExpressionBuilderCollection.cs
- DataException.cs
- GridViewEditEventArgs.cs
- UIElement.cs
- RegexParser.cs
- RowsCopiedEventArgs.cs
- OleServicesContext.cs
- DesignColumnCollection.cs
- ListViewGroup.cs
- BasicViewGenerator.cs
- DropShadowBitmapEffect.cs
- ComPlusThreadInitializer.cs