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
- DataSourceCacheDurationConverter.cs
- wgx_render.cs
- ConcurrentStack.cs
- SmiEventSink_DeferedProcessing.cs
- DeviceSpecific.cs
- SQLDouble.cs
- MonthChangedEventArgs.cs
- DefaultExpression.cs
- SafeLocalMemHandle.cs
- DefaultCompensation.cs
- TypeDescriptor.cs
- OracleBinary.cs
- ToolStripItem.cs
- PropertiesTab.cs
- ModelUtilities.cs
- PolyBezierSegment.cs
- XmlWrappingReader.cs
- EmissiveMaterial.cs
- BufferAllocator.cs
- FrameAutomationPeer.cs
- CookielessHelper.cs
- SafeRegistryHandle.cs
- ApplicationBuildProvider.cs
- SynchronousReceiveElement.cs
- State.cs
- ConvertEvent.cs
- SqlBulkCopyColumnMapping.cs
- ImageBrush.cs
- SqlDataSourceStatusEventArgs.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- PriorityChain.cs
- QueryOutputWriter.cs
- NTAccount.cs
- GridViewDeletedEventArgs.cs
- MissingMemberException.cs
- Stack.cs
- StoragePropertyMapping.cs
- UserInitiatedNavigationPermission.cs
- KeyValueSerializer.cs
- RuntimeResourceSet.cs
- Error.cs
- updateconfighost.cs
- sapiproxy.cs
- MenuScrollingVisibilityConverter.cs
- PreservationFileReader.cs
- EntityStoreSchemaGenerator.cs
- AssemblyAttributes.cs
- NetworkAddressChange.cs
- ByteStorage.cs
- NeutralResourcesLanguageAttribute.cs
- RangeValueProviderWrapper.cs
- CloseCryptoHandleRequest.cs
- BinHexDecoder.cs
- ConfigurationSchemaErrors.cs
- Model3DGroup.cs
- ArithmeticException.cs
- AmbiguousMatchException.cs
- Completion.cs
- MenuItemStyleCollection.cs
- BitArray.cs
- UpDownEvent.cs
- ObjectQuery.cs
- SessionPageStateSection.cs
- SqlConnectionFactory.cs
- SoapSchemaExporter.cs
- StylusPointProperty.cs
- DPCustomTypeDescriptor.cs
- NavigateEvent.cs
- DataControlFieldHeaderCell.cs
- EdmItemCollection.cs
- DataGridViewButtonCell.cs
- DataSourceControl.cs
- NullableIntAverageAggregationOperator.cs
- AdCreatedEventArgs.cs
- Console.cs
- ICollection.cs
- FlatButtonAppearance.cs
- MarkupObject.cs
- nulltextcontainer.cs
- ListDictionary.cs
- Point3DConverter.cs
- ISAPIRuntime.cs
- NameObjectCollectionBase.cs
- SqlProviderManifest.cs
- PersonalizationProvider.cs
- Cloud.cs
- StyleCollection.cs
- UIPropertyMetadata.cs
- HitTestFilterBehavior.cs
- SortedList.cs
- LocalizedNameDescriptionPair.cs
- OverflowException.cs
- WSFederationHttpSecurity.cs
- MemoryMappedViewStream.cs
- SafeNativeMethodsOther.cs
- BeginGetFileNameFromUserRequest.cs
- WebPartUserCapability.cs
- ImageSource.cs
- ItemList.cs
- ParallelTimeline.cs