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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WebPartZoneBase.cs
- StaticExtension.cs
- ReaderWriterLockWrapper.cs
- ControlAdapter.cs
- WebPartAddingEventArgs.cs
- TreeView.cs
- Icon.cs
- Divide.cs
- InputLanguage.cs
- ProcessHostMapPath.cs
- XmlDataSourceNodeDescriptor.cs
- IBuiltInEvidence.cs
- XmlQueryCardinality.cs
- PromptStyle.cs
- MatrixTransform3D.cs
- RegexParser.cs
- CommandSet.cs
- HwndTarget.cs
- ISAPIRuntime.cs
- Relationship.cs
- XmlQueryType.cs
- Transform.cs
- Substitution.cs
- Geometry.cs
- XmlSerializableWriter.cs
- XmlIncludeAttribute.cs
- TypeUtils.cs
- TextBlock.cs
- SendAgentStatusRequest.cs
- SubpageParaClient.cs
- TreeIterators.cs
- StreamMarshaler.cs
- NetMsmqBinding.cs
- WindowsStatusBar.cs
- Size.cs
- WizardSideBarListControlItem.cs
- DisplayClaim.cs
- UpdateManifestForBrowserApplication.cs
- ToolStripSplitButton.cs
- DataBoundLiteralControl.cs
- DnsPermission.cs
- DataProviderNameConverter.cs
- NegotiationTokenProvider.cs
- IndentedWriter.cs
- X500Name.cs
- SeverityFilter.cs
- InputProcessorProfiles.cs
- ThreadSafeList.cs
- ActivationArguments.cs
- ProviderUtil.cs
- FileChangesMonitor.cs
- regiisutil.cs
- TimeSpanOrInfiniteConverter.cs
- webeventbuffer.cs
- DetailsViewPagerRow.cs
- TreeNodeCollection.cs
- DummyDataSource.cs
- DataPagerFieldCommandEventArgs.cs
- PaperSize.cs
- activationcontext.cs
- CheckedPointers.cs
- CodeBinaryOperatorExpression.cs
- SizeLimitedCache.cs
- MappingSource.cs
- StorageInfo.cs
- GroupStyle.cs
- GroupItem.cs
- VariableQuery.cs
- PlaceHolder.cs
- ObjectMemberMapping.cs
- PagerStyle.cs
- IpcPort.cs
- StorageMappingItemLoader.cs
- OletxTransactionFormatter.cs
- Misc.cs
- ObjectAnimationBase.cs
- CollectionType.cs
- CalendarSelectionChangedEventArgs.cs
- WebPartTransformerAttribute.cs
- ConfigViewGenerator.cs
- ProtectedProviderSettings.cs
- CodeAttachEventStatement.cs
- CodeSubDirectoriesCollection.cs
- UserPreference.cs
- SessionParameter.cs
- basecomparevalidator.cs
- DataRelation.cs
- ThreadSafeList.cs
- DataGridViewToolTip.cs
- RequestSecurityToken.cs
- KnownTypesProvider.cs
- PointUtil.cs
- _Win32.cs
- SafeCoTaskMem.cs
- NotSupportedException.cs
- ClientCultureInfo.cs
- SqlDataSourceEnumerator.cs
- NextPreviousPagerField.cs
- PeerObject.cs
- GenericTextProperties.cs