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
- BaseValidatorDesigner.cs
- DataGridViewBindingCompleteEventArgs.cs
- HashUtility.cs
- EdmSchemaAttribute.cs
- PerformanceCounterCategory.cs
- TypeUtil.cs
- OleTxTransactionInfo.cs
- PathFigureCollection.cs
- UriTemplateVariableQueryValue.cs
- CapabilitiesSection.cs
- EventLogPermissionEntry.cs
- UIElementParagraph.cs
- TextTreeRootTextBlock.cs
- designeractionlistschangedeventargs.cs
- DeferredTextReference.cs
- AvTrace.cs
- DataListItemCollection.cs
- ReaderContextStackData.cs
- ReferencedAssemblyResolver.cs
- ResourceDisplayNameAttribute.cs
- ContactManager.cs
- ToolStripDropDownButton.cs
- ControlEvent.cs
- Style.cs
- WebPartConnection.cs
- OleDbParameterCollection.cs
- OleDbPermission.cs
- WebPartsPersonalization.cs
- QilBinary.cs
- ADMembershipProvider.cs
- DataGridViewComboBoxEditingControl.cs
- XmlCustomFormatter.cs
- StatusInfoItem.cs
- DesignerCategoryAttribute.cs
- ExpressionsCollectionEditor.cs
- PeerTransportListenAddressValidator.cs
- JulianCalendar.cs
- HostedNamedPipeTransportManager.cs
- RangeBaseAutomationPeer.cs
- securitymgrsite.cs
- ConditionalAttribute.cs
- ConsumerConnectionPointCollection.cs
- NavigationEventArgs.cs
- AssemblyCache.cs
- SecureUICommand.cs
- TextServicesDisplayAttribute.cs
- SqlDataSource.cs
- ParameterModifier.cs
- ColumnBinding.cs
- ClientConfigurationHost.cs
- ImageUrlEditor.cs
- SchemaConstraints.cs
- XmlEncoding.cs
- TextServicesCompartmentEventSink.cs
- Single.cs
- SecurityUtils.cs
- JsonMessageEncoderFactory.cs
- DescendantQuery.cs
- Delegate.cs
- RangeValuePattern.cs
- XNodeValidator.cs
- Metadata.cs
- GridItemCollection.cs
- ExclusiveTcpTransportManager.cs
- ActionFrame.cs
- SelectiveScrollingGrid.cs
- XmlQueryCardinality.cs
- IBuiltInEvidence.cs
- HighContrastHelper.cs
- FontStretch.cs
- SqlTypeSystemProvider.cs
- AxHost.cs
- FloaterParagraph.cs
- EdmType.cs
- CompensationDesigner.cs
- TargetControlTypeAttribute.cs
- WindowsListViewGroup.cs
- DataGridCommandEventArgs.cs
- ZipIOLocalFileBlock.cs
- _Semaphore.cs
- CalendarDay.cs
- CharAnimationUsingKeyFrames.cs
- XXXInfos.cs
- X509ClientCertificateAuthentication.cs
- ObjectStateEntryDbDataRecord.cs
- IfElseDesigner.xaml.cs
- SettingsProviderCollection.cs
- ResourceReader.cs
- XmlParserContext.cs
- SafeNativeMethods.cs
- MexTcpBindingCollectionElement.cs
- RoleGroupCollection.cs
- StagingAreaInputItem.cs
- COSERVERINFO.cs
- RuleSetCollection.cs
- SizeKeyFrameCollection.cs
- NullableBoolConverter.cs
- ValueChangedEventManager.cs
- CqlBlock.cs
- SingleObjectCollection.cs