Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- QuaternionConverter.cs
- NotFiniteNumberException.cs
- TextRangeProviderWrapper.cs
- DataPagerCommandEventArgs.cs
- HealthMonitoringSection.cs
- XmlChoiceIdentifierAttribute.cs
- Calendar.cs
- XPathScanner.cs
- Behavior.cs
- ExclusiveCanonicalizationTransform.cs
- streamingZipPartStream.cs
- XmlAttributeCache.cs
- SessionParameter.cs
- FolderLevelBuildProviderCollection.cs
- ListView.cs
- ApplicationManager.cs
- EditorAttribute.cs
- DocumentViewerAutomationPeer.cs
- ObjectNotFoundException.cs
- EmptyReadOnlyDictionaryInternal.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- EntityContainer.cs
- LinqToSqlWrapper.cs
- _Connection.cs
- IHttpResponseInternal.cs
- XPathPatternBuilder.cs
- ContentType.cs
- AssociationEndMember.cs
- StorageMappingItemCollection.cs
- DataViewManager.cs
- StorageConditionPropertyMapping.cs
- PropertyDescriptor.cs
- XamlPoint3DCollectionSerializer.cs
- CompositeKey.cs
- DesignerVerb.cs
- BulletDecorator.cs
- MarginsConverter.cs
- XmlQueryType.cs
- ListBox.cs
- RepeatBehavior.cs
- AuthorizationRule.cs
- XmlQueryOutput.cs
- DataGridColumn.cs
- RowBinding.cs
- SpotLight.cs
- ExpandSegment.cs
- _ScatterGatherBuffers.cs
- DataGridItem.cs
- Vector3DValueSerializer.cs
- GatewayDefinition.cs
- SeparatorAutomationPeer.cs
- NamespaceEmitter.cs
- WindowsClaimSet.cs
- InstanceDescriptor.cs
- Transform.cs
- AtomicFile.cs
- ButtonStandardAdapter.cs
- XsdDuration.cs
- FixedSOMTableCell.cs
- documentsequencetextpointer.cs
- OracleNumber.cs
- RelationshipEndCollection.cs
- SystemIPv6InterfaceProperties.cs
- Column.cs
- RequestNavigateEventArgs.cs
- DataSourceView.cs
- DispatchWrapper.cs
- PasswordDeriveBytes.cs
- ClientTarget.cs
- DynamicRenderer.cs
- HeaderPanel.cs
- ByValueEqualityComparer.cs
- VolatileResourceManager.cs
- ZipIORawDataFileBlock.cs
- StreamedFramingRequestChannel.cs
- Pair.cs
- CancellationState.cs
- ListItemConverter.cs
- OutputCacheProfileCollection.cs
- CellTreeNode.cs
- ContextMenuService.cs
- EventListener.cs
- CodeTypeConstructor.cs
- WorkflowTimerService.cs
- Transform3DCollection.cs
- WsatConfiguration.cs
- FlowDocumentPaginator.cs
- LocatorPart.cs
- SoapReflectionImporter.cs
- GridSplitterAutomationPeer.cs
- COMException.cs
- WebSysDescriptionAttribute.cs
- XsltQilFactory.cs
- Math.cs
- HasCopySemanticsAttribute.cs
- MultilineStringConverter.cs
- ToolBarDesigner.cs
- SmtpReplyReader.cs
- RelationalExpressions.cs
- ActiveXHelper.cs