Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- OutputCacheModule.cs
- ExecutionEngineException.cs
- PassportIdentity.cs
- securitycriticaldataformultiplegetandset.cs
- BaseTemplateCodeDomTreeGenerator.cs
- ScrollBar.cs
- x509utils.cs
- WmlMobileTextWriter.cs
- WebEncodingValidator.cs
- MetadataResolver.cs
- SerializationInfoEnumerator.cs
- Profiler.cs
- XmlCDATASection.cs
- TraversalRequest.cs
- ConfigXmlDocument.cs
- HashAlgorithm.cs
- EventData.cs
- SchemaImporterExtension.cs
- MessageDecoder.cs
- BamlLocalizationDictionary.cs
- EditCommandColumn.cs
- EntityDataSourceReferenceGroup.cs
- AssociationSetMetadata.cs
- VisualBrush.cs
- TriggerBase.cs
- SaveRecipientRequest.cs
- ColumnResult.cs
- CommonObjectSecurity.cs
- PolicyAssertionCollection.cs
- ReaderWriterLockSlim.cs
- InputLangChangeRequestEvent.cs
- BStrWrapper.cs
- DesignerCategoryAttribute.cs
- GridEntryCollection.cs
- SelectedPathEditor.cs
- InstanceNormalEvent.cs
- KeyEventArgs.cs
- NavigationCommands.cs
- ReadOnlyKeyedCollection.cs
- AccessorTable.cs
- SingleAnimationBase.cs
- SolidColorBrush.cs
- XdrBuilder.cs
- IEnumerable.cs
- ListViewItemSelectionChangedEvent.cs
- Registry.cs
- SimpleRecyclingCache.cs
- DesignerAutoFormatStyle.cs
- RangeValidator.cs
- HierarchicalDataBoundControl.cs
- FormsIdentity.cs
- OperationExecutionFault.cs
- HtmlSelectionListAdapter.cs
- GcHandle.cs
- RectValueSerializer.cs
- RelatedEnd.cs
- VarInfo.cs
- FillBehavior.cs
- Pkcs7Recipient.cs
- ListBase.cs
- AuthorizationRuleCollection.cs
- MemoryStream.cs
- DBConcurrencyException.cs
- WithParamAction.cs
- MimeWriter.cs
- PromptBuilder.cs
- DrawingGroupDrawingContext.cs
- WebConfigurationHostFileChange.cs
- WinEventHandler.cs
- DesignerVerbCollection.cs
- RegexCompiler.cs
- IndicShape.cs
- SoapInteropTypes.cs
- Rules.cs
- WeakRefEnumerator.cs
- odbcmetadatacollectionnames.cs
- TextBounds.cs
- AbstractExpressions.cs
- PointCollectionConverter.cs
- ImageButton.cs
- SpecialNameAttribute.cs
- DtdParser.cs
- ObjectSecurity.cs
- WindowsStatic.cs
- HtmlToClrEventProxy.cs
- SafeWaitHandle.cs
- CanonicalFontFamilyReference.cs
- SignatureToken.cs
- EntityDesignerUtils.cs
- Point4D.cs
- Listbox.cs
- MimeXmlReflector.cs
- DbMetaDataCollectionNames.cs
- AsymmetricSignatureFormatter.cs
- DataServiceProviderMethods.cs
- ComEventsInfo.cs
- HtmlTableRow.cs
- CookieParameter.cs
- CapabilitiesPattern.cs
- StyleSelector.cs