Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / XmlUtils / System / Xml / Xsl / XPath / XPathCompileException.cs / 1305376 / 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.LinkDemand, 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.LinkDemand, 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
- ZipIOExtraFieldPaddingElement.cs
- IWorkflowDebuggerService.cs
- ProfileBuildProvider.cs
- WebConfigManager.cs
- TableItemPatternIdentifiers.cs
- WebServicesDescriptionAttribute.cs
- DataSourceSelectArguments.cs
- ContextItemManager.cs
- CookieProtection.cs
- ObjectSecurity.cs
- ProvideValueServiceProvider.cs
- FlowDocumentReaderAutomationPeer.cs
- ProcessHostConfigUtils.cs
- AuthenticationServiceManager.cs
- LogLogRecordEnumerator.cs
- Events.cs
- SapiRecoInterop.cs
- ProcessProtocolHandler.cs
- DictionaryEntry.cs
- WinInetCache.cs
- EventListenerClientSide.cs
- PathParser.cs
- ToolStripTemplateNode.cs
- WebPartDescription.cs
- DocumentGridContextMenu.cs
- SystemSounds.cs
- ClientConfigurationHost.cs
- DataGridViewUtilities.cs
- RegexCompilationInfo.cs
- ReplyChannelAcceptor.cs
- SelectionGlyphBase.cs
- ParseNumbers.cs
- WebScriptMetadataMessage.cs
- HttpStreamMessage.cs
- WindowsFormsHost.cs
- WebHttpEndpoint.cs
- log.cs
- ListBindableAttribute.cs
- Vars.cs
- SiteMapDataSourceView.cs
- ScrollItemProviderWrapper.cs
- HtmlElement.cs
- CodeCastExpression.cs
- AbstractSvcMapFileLoader.cs
- ComplusTypeValidator.cs
- mactripleDES.cs
- DataGridHeaderBorder.cs
- uribuilder.cs
- PropertyGridCommands.cs
- EventWaitHandle.cs
- XAMLParseException.cs
- XmlSortKeyAccumulator.cs
- BasicViewGenerator.cs
- MarshalByValueComponent.cs
- OperationFormatStyle.cs
- Types.cs
- NullableDecimalMinMaxAggregationOperator.cs
- SimpleWebHandlerParser.cs
- CacheOutputQuery.cs
- shaperfactoryquerycachekey.cs
- DataGridToolTip.cs
- DataSourceExpressionCollection.cs
- PrintDocument.cs
- ToolStripMenuItem.cs
- PersonalizationState.cs
- ListSortDescription.cs
- TextProperties.cs
- BuiltInPermissionSets.cs
- While.cs
- ConnectionConsumerAttribute.cs
- DynamicObjectAccessor.cs
- XomlCompilerHelpers.cs
- TextTreeTextBlock.cs
- ResizingMessageFilter.cs
- DataSourceControlBuilder.cs
- SQLInt16.cs
- _CacheStreams.cs
- DrawingAttributes.cs
- ColorMap.cs
- ToolStripOverflow.cs
- MetadataCache.cs
- NamespaceCollection.cs
- TemplatedControlDesigner.cs
- DataGridHeaderBorder.cs
- XmlSignatureManifest.cs
- FontStyles.cs
- XPathDescendantIterator.cs
- DrawTreeNodeEventArgs.cs
- BitmapMetadata.cs
- PropertyInformationCollection.cs
- RijndaelManagedTransform.cs
- PassportAuthenticationModule.cs
- ListBase.cs
- LocalIdCollection.cs
- QfeChecker.cs
- SrgsToken.cs
- FontDriver.cs
- DataObjectEventArgs.cs
- OwnerDrawPropertyBag.cs
- HScrollBar.cs