Code:
/ 4.0 / 4.0 / 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. //------------------------------------------------------------------------------ //// 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
- ToolStripContentPanel.cs
- PeerTransportSecuritySettings.cs
- CapabilitiesPattern.cs
- DbSourceParameterCollection.cs
- ServiceOperationParameter.cs
- OleDbConnectionFactory.cs
- StreamSecurityUpgradeAcceptorAsyncResult.cs
- SqlMethodAttribute.cs
- NavigatingCancelEventArgs.cs
- TextBox.cs
- DetailsViewPageEventArgs.cs
- SqlCacheDependency.cs
- WindowsListViewItemCheckBox.cs
- BaseCodePageEncoding.cs
- ImageDrawing.cs
- BridgeDataReader.cs
- PtsCache.cs
- ListViewGroupCollectionEditor.cs
- CertificateManager.cs
- MultiBinding.cs
- IriParsingElement.cs
- ConstraintManager.cs
- UnaryNode.cs
- CodeTypeDeclaration.cs
- FormatConvertedBitmap.cs
- RangeValidator.cs
- Knowncolors.cs
- OrderedDictionary.cs
- EventManager.cs
- ConfigurationValidatorBase.cs
- StorageModelBuildProvider.cs
- BamlMapTable.cs
- NamespaceEmitter.cs
- ComponentDesigner.cs
- EDesignUtil.cs
- ProviderConnectionPointCollection.cs
- ColumnCollection.cs
- WizardDesigner.cs
- HttpListener.cs
- Column.cs
- AudioFormatConverter.cs
- StoreAnnotationsMap.cs
- JsonCollectionDataContract.cs
- Logging.cs
- StringExpressionSet.cs
- OneOfElement.cs
- Task.cs
- MimePart.cs
- XmlCountingReader.cs
- TypeValidationEventArgs.cs
- SymmetricSecurityProtocolFactory.cs
- Positioning.cs
- BrushConverter.cs
- VirtualPath.cs
- XmlSchemas.cs
- SmtpCommands.cs
- SystemFonts.cs
- DesignerActionHeaderItem.cs
- HttpVersion.cs
- TargetControlTypeAttribute.cs
- NativeMethods.cs
- TemplateBindingExpressionConverter.cs
- EncodingDataItem.cs
- DataGridViewRow.cs
- NativeCompoundFileAPIs.cs
- TextRangeAdaptor.cs
- ReturnValue.cs
- ZipIOCentralDirectoryFileHeader.cs
- AssemblySettingAttributes.cs
- ClientSettingsProvider.cs
- DiffuseMaterial.cs
- ValidatingReaderNodeData.cs
- PerfCounters.cs
- DefaultWorkflowSchedulerService.cs
- CounterSampleCalculator.cs
- MDIControlStrip.cs
- TextRunCacheImp.cs
- GridProviderWrapper.cs
- IPipelineRuntime.cs
- XPathSelectionIterator.cs
- FileController.cs
- SqlNodeTypeOperators.cs
- ValueTable.cs
- RTLAwareMessageBox.cs
- TextEditorContextMenu.cs
- StylusDownEventArgs.cs
- MsmqTransportElement.cs
- SortableBindingList.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- StorageInfo.cs
- XDRSchema.cs
- CompensationExtension.cs
- TextSelectionHelper.cs
- GPPOINT.cs
- AsyncResult.cs
- NameValueConfigurationCollection.cs
- XmlQualifiedName.cs
- HostSecurityManager.cs
- CqlErrorHelper.cs
- Delegate.cs