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
- InvalidOperationException.cs
- DrawingAttributeSerializer.cs
- Point3DAnimationUsingKeyFrames.cs
- TriggerBase.cs
- Metafile.cs
- Button.cs
- WorkflowViewManager.cs
- NativeMethods.cs
- Assembly.cs
- BindingWorker.cs
- oledbmetadatacollectionnames.cs
- Formatter.cs
- CodeSubDirectory.cs
- NavigationFailedEventArgs.cs
- QueryCacheEntry.cs
- StagingAreaInputItem.cs
- Expression.cs
- IndexedWhereQueryOperator.cs
- SQLDateTimeStorage.cs
- DataObjectAttribute.cs
- BaseProcessProtocolHandler.cs
- RequestDescription.cs
- _IPv4Address.cs
- QilCloneVisitor.cs
- TcpServerChannel.cs
- ProxyWebPart.cs
- CommandBinding.cs
- SvcMapFileSerializer.cs
- Parallel.cs
- XmlSchemaComplexContent.cs
- SplineQuaternionKeyFrame.cs
- LinqDataSourceHelper.cs
- CoordinationService.cs
- VectorAnimation.cs
- SmtpReplyReader.cs
- ProviderConnectionPoint.cs
- TransformerInfoCollection.cs
- Trustee.cs
- DateTimeValueSerializerContext.cs
- MgmtConfigurationRecord.cs
- EntitySqlQueryBuilder.cs
- SetStateDesigner.cs
- TransformConverter.cs
- infer.cs
- SystemIPv6InterfaceProperties.cs
- ContextStaticAttribute.cs
- RequestCachingSection.cs
- StickyNote.cs
- RequestCacheManager.cs
- EndCreateSecurityTokenRequest.cs
- OutputCacheProfileCollection.cs
- ResourcePool.cs
- ServiceOperation.cs
- SingleAnimationBase.cs
- AssemblyInfo.cs
- SHA1.cs
- CollectionContainer.cs
- WorkflowValidationFailedException.cs
- OutputCacheSection.cs
- CodeEntryPointMethod.cs
- WebPartTransformerCollection.cs
- BufferedReadStream.cs
- ProcessModelInfo.cs
- DataView.cs
- PopupRootAutomationPeer.cs
- FixUp.cs
- BufferedWebEventProvider.cs
- CancellationState.cs
- ExpressionDumper.cs
- WorkflowRuntimeServiceElementCollection.cs
- WeakEventTable.cs
- DataColumnPropertyDescriptor.cs
- HtmlForm.cs
- XNodeNavigator.cs
- ContainerUtilities.cs
- EmptyCollection.cs
- SiteMapNodeItem.cs
- SqlCacheDependencyDatabaseCollection.cs
- LinqDataSourceSelectEventArgs.cs
- UndirectedGraph.cs
- ContainsRowNumberChecker.cs
- XmlNodeReader.cs
- StringAnimationUsingKeyFrames.cs
- FileReservationCollection.cs
- StaticSiteMapProvider.cs
- CombinedGeometry.cs
- QilInvokeEarlyBound.cs
- VisemeEventArgs.cs
- PinnedBufferMemoryStream.cs
- OrthographicCamera.cs
- ByteAnimationUsingKeyFrames.cs
- DesignSurfaceServiceContainer.cs
- ServiceObjectContainer.cs
- CodeGroup.cs
- SubstitutionDesigner.cs
- RegexTree.cs
- NetworkCredential.cs
- DbParameterHelper.cs
- CodeAssignStatement.cs
- TemplatedMailWebEventProvider.cs