Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- Mutex.cs
- NavigationService.cs
- MediaTimeline.cs
- ExpressionNode.cs
- SHA256.cs
- BindingBase.cs
- WmpBitmapEncoder.cs
- Shape.cs
- LayoutTable.cs
- Library.cs
- MetadataArtifactLoaderResource.cs
- Timeline.cs
- UrlMappingCollection.cs
- TimeoutHelper.cs
- SchemeSettingElement.cs
- EditingCommands.cs
- MessageQueue.cs
- Visitor.cs
- ColorInterpolationModeValidation.cs
- UrlPropertyAttribute.cs
- CalendarDataBindingHandler.cs
- XmlSchema.cs
- ParameterCollection.cs
- DateTimeConstantAttribute.cs
- ItemCollection.cs
- DebugView.cs
- ContainerActivationHelper.cs
- RichTextBoxAutomationPeer.cs
- FormsAuthenticationUser.cs
- BasicAsyncResult.cs
- MDIControlStrip.cs
- HttpServerUtilityBase.cs
- sqlnorm.cs
- Dictionary.cs
- FieldToken.cs
- MissingMemberException.cs
- ListSortDescriptionCollection.cs
- ListComponentEditorPage.cs
- DataBinder.cs
- SynchronizedReadOnlyCollection.cs
- SwitchAttribute.cs
- RegistrationContext.cs
- EventSinkHelperWriter.cs
- TraceHandler.cs
- TemplateField.cs
- PaintValueEventArgs.cs
- SendParametersContent.cs
- NullableConverter.cs
- StructureChangedEventArgs.cs
- TextEditorTables.cs
- itemelement.cs
- AsymmetricAlgorithm.cs
- MouseDevice.cs
- AnchorEditor.cs
- CodeTypeMember.cs
- PropertyBuilder.cs
- PeerOutputChannel.cs
- RuntimeConfig.cs
- WmlValidatorAdapter.cs
- _SSPIWrapper.cs
- WebPartUserCapability.cs
- PathSegment.cs
- ObjectNotFoundException.cs
- GroupPartitionExpr.cs
- StringSorter.cs
- DataObjectAttribute.cs
- SerializationStore.cs
- CancelEventArgs.cs
- ListViewItemMouseHoverEvent.cs
- UnsafeNativeMethods.cs
- GenerateTemporaryAssemblyTask.cs
- BaseTemplateBuildProvider.cs
- XmlSchemaInfo.cs
- FontWeights.cs
- WindowsScrollBar.cs
- ProcessActivityTreeOptions.cs
- TextTreeRootNode.cs
- GeneralTransformCollection.cs
- XmlValidatingReader.cs
- ToolStripCodeDomSerializer.cs
- UseAttributeSetsAction.cs
- StringArrayConverter.cs
- Psha1DerivedKeyGeneratorHelper.cs
- ToolStripDropDownButton.cs
- MessageBox.cs
- IdentityModelStringsVersion1.cs
- ConfigXmlComment.cs
- DesignTimeParseData.cs
- WrapPanel.cs
- TemplateBamlTreeBuilder.cs
- MultiBinding.cs
- SequentialUshortCollection.cs
- InlineCategoriesDocument.cs
- TextRunProperties.cs
- PrintingPermission.cs
- OdbcConnection.cs
- KnownColorTable.cs
- SerTrace.cs
- ExceptionHandlersDesigner.cs
- AccessViolationException.cs