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
- HybridDictionary.cs
- EntityConnection.cs
- StrokeNode.cs
- SpellerError.cs
- XPathCompileException.cs
- smtppermission.cs
- FilteredSchemaElementLookUpTable.cs
- ResourcesBuildProvider.cs
- OleDbErrorCollection.cs
- DataControlButton.cs
- AppDomainGrammarProxy.cs
- ProfilePropertySettingsCollection.cs
- ellipse.cs
- ParallelRangeManager.cs
- PageThemeParser.cs
- SqlStatistics.cs
- RadioButtonList.cs
- ColumnMapProcessor.cs
- DataGridViewColumnCollectionDialog.cs
- ScriptResourceMapping.cs
- TrustLevelCollection.cs
- _ConnectionGroup.cs
- SmtpTransport.cs
- FileRecordSequenceCompletedAsyncResult.cs
- ControlBuilderAttribute.cs
- QuaternionAnimationUsingKeyFrames.cs
- ButtonBaseAutomationPeer.cs
- WorkflowInstanceContextProvider.cs
- XpsColorContext.cs
- TabItemAutomationPeer.cs
- ClientRoleProvider.cs
- __Filters.cs
- ThreadExceptionEvent.cs
- XPathParser.cs
- XmlSchemaComplexContent.cs
- StyleSelector.cs
- RadioButtonRenderer.cs
- IntranetCredentialPolicy.cs
- ProcessManager.cs
- StringBuilder.cs
- ApplicationHost.cs
- EastAsianLunisolarCalendar.cs
- TrackingMemoryStreamFactory.cs
- DynamicActivityTypeDescriptor.cs
- Html32TextWriter.cs
- AppDomainManager.cs
- BufferModesCollection.cs
- CacheMemory.cs
- InteropBitmapSource.cs
- GestureRecognitionResult.cs
- ErrorView.xaml.cs
- ToolStripItemBehavior.cs
- DataTableNewRowEvent.cs
- ToolboxDataAttribute.cs
- RadioButtonRenderer.cs
- Variable.cs
- DocumentPageHost.cs
- CopyNamespacesAction.cs
- TemplateXamlParser.cs
- CompiledRegexRunner.cs
- TypeExtension.cs
- PropertyItem.cs
- ChannelBinding.cs
- DurationConverter.cs
- WmiEventSink.cs
- PropertyGridView.cs
- KnownTypesHelper.cs
- UxThemeWrapper.cs
- XmlSchemaObject.cs
- SimpleApplicationHost.cs
- WindowProviderWrapper.cs
- IDQuery.cs
- TextBox.cs
- ToolboxCategoryItems.cs
- OdbcCommand.cs
- PropertyBuilder.cs
- PackagingUtilities.cs
- StructuralObject.cs
- JsonByteArrayDataContract.cs
- ResolveMatches11.cs
- MessageSecurityProtocol.cs
- ActiveXHost.cs
- ClipboardData.cs
- ProfilePropertySettingsCollection.cs
- ObjectStateManager.cs
- DrawingAttributes.cs
- BypassElement.cs
- ArrayItemReference.cs
- SystemIPAddressInformation.cs
- DataObjectAttribute.cs
- CodeFieldReferenceExpression.cs
- SystemColors.cs
- tabpagecollectioneditor.cs
- DesignTimeTemplateParser.cs
- HtmlFormWrapper.cs
- SliderAutomationPeer.cs
- PeerPresenceInfo.cs
- ControlParameter.cs
- ErrorInfoXmlDocument.cs
- WindowsToolbarAsMenu.cs