Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- FilteredAttributeCollection.cs
- ToolStripDesignerAvailabilityAttribute.cs
- EdmPropertyAttribute.cs
- CombinedHttpChannel.cs
- FrameworkContentElement.cs
- SchemaHelper.cs
- SafeFileHandle.cs
- MouseActionConverter.cs
- CodeParameterDeclarationExpressionCollection.cs
- SafePointer.cs
- Button.cs
- AsyncPostBackErrorEventArgs.cs
- PagerStyle.cs
- LicenseManager.cs
- XmlTypeMapping.cs
- figurelength.cs
- XamlValidatingReader.cs
- UnaryNode.cs
- DispatcherExceptionFilterEventArgs.cs
- AppDomainProtocolHandler.cs
- ToolTipAutomationPeer.cs
- HtmlAnchor.cs
- DynamicActivity.cs
- InlineObject.cs
- DataSourceSerializationException.cs
- InstancePersistenceCommand.cs
- KeyFrames.cs
- OptionUsage.cs
- QilIterator.cs
- SqlDataAdapter.cs
- ThicknessAnimationBase.cs
- ResourcesChangeInfo.cs
- TickBar.cs
- SecurityKeyIdentifier.cs
- ResourceContainer.cs
- HttpValueCollection.cs
- DataControlFieldCell.cs
- UniqueIdentifierService.cs
- CookielessHelper.cs
- WebRequestModuleElementCollection.cs
- ConstraintConverter.cs
- JsonMessageEncoderFactory.cs
- SqlCommandSet.cs
- SrgsNameValueTag.cs
- SpellerInterop.cs
- ExpressionEditorAttribute.cs
- FillRuleValidation.cs
- StateMachine.cs
- DataTrigger.cs
- SchemaTableOptionalColumn.cs
- ModelServiceImpl.cs
- RelatedPropertyManager.cs
- EntityClientCacheEntry.cs
- SymmetricAlgorithm.cs
- XmlSchemaImport.cs
- ParagraphResult.cs
- SelectorItemAutomationPeer.cs
- EntityDataSourceChangedEventArgs.cs
- ViewStateModeByIdAttribute.cs
- SqlDataSourceSelectingEventArgs.cs
- CompiledQuery.cs
- HuffmanTree.cs
- MergeFailedEvent.cs
- EqualityComparer.cs
- TableCell.cs
- InheritanceContextHelper.cs
- ModelPropertyImpl.cs
- SqlServer2KCompatibilityCheck.cs
- WindowsImpersonationContext.cs
- AutomationPatternInfo.cs
- MenuScrollingVisibilityConverter.cs
- SQLDecimalStorage.cs
- ConfigXmlText.cs
- SingleKeyFrameCollection.cs
- FixedSOMTableCell.cs
- StylusShape.cs
- Inline.cs
- ClientConfigurationHost.cs
- AnonymousIdentificationSection.cs
- TimeoutTimer.cs
- TransformGroup.cs
- Fonts.cs
- DocumentNUp.cs
- XslVisitor.cs
- FrameworkRichTextComposition.cs
- RegexStringValidatorAttribute.cs
- IPAddress.cs
- ObjectViewEntityCollectionData.cs
- RtfFormatStack.cs
- ColumnMapVisitor.cs
- WindowProviderWrapper.cs
- DataGridViewTopLeftHeaderCell.cs
- ProgressBarRenderer.cs
- BitmapImage.cs
- DbConnectionInternal.cs
- WebPartManager.cs
- BulletedList.cs
- MessageQueueInstaller.cs
- ToolStripCodeDomSerializer.cs
- App.cs