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
- HtmlTableRow.cs
- SecurityVerifiedMessage.cs
- ComponentDesigner.cs
- GacUtil.cs
- NumberFormatInfo.cs
- WindowsSidIdentity.cs
- WmlTextViewAdapter.cs
- CriticalFinalizerObject.cs
- AggregateNode.cs
- HtmlDocument.cs
- ApplicationSecurityInfo.cs
- AssemblyAttributes.cs
- EncryptedPackageFilter.cs
- Context.cs
- StringInfo.cs
- HMAC.cs
- PageParserFilter.cs
- ObjectView.cs
- MethodToken.cs
- TextTrailingWordEllipsis.cs
- WebServiceTypeData.cs
- PropertyChangingEventArgs.cs
- ContractBase.cs
- _AuthenticationState.cs
- PartEditor.cs
- SweepDirectionValidation.cs
- BrowserCapabilitiesFactory.cs
- FrugalList.cs
- StructuredTypeEmitter.cs
- CheckBoxList.cs
- CompilationRelaxations.cs
- WindowsGrip.cs
- ParameterModifier.cs
- HtmlEmptyTagControlBuilder.cs
- Rotation3DAnimation.cs
- ErrorsHelper.cs
- KeyProperty.cs
- DataGridViewCellValueEventArgs.cs
- FormViewModeEventArgs.cs
- EntityDataReader.cs
- ZipPackage.cs
- TreeNodeMouseHoverEvent.cs
- MaskDesignerDialog.cs
- DesignerForm.cs
- XmlC14NWriter.cs
- COMException.cs
- DataSourceProvider.cs
- KeyToListMap.cs
- SchemaNames.cs
- SafeNativeMethods.cs
- HtmlTableCell.cs
- ActivatableWorkflowsQueryResult.cs
- GlyphRunDrawing.cs
- SspiWrapper.cs
- SoapInteropTypes.cs
- ViewManager.cs
- SqlTypesSchemaImporter.cs
- InstanceData.cs
- Trustee.cs
- RelatedPropertyManager.cs
- DefaultTextStoreTextComposition.cs
- RequestResizeEvent.cs
- SafeNativeMethods.cs
- FloatUtil.cs
- Debugger.cs
- HttpSysSettings.cs
- altserialization.cs
- ApplicationFileParser.cs
- FileSystemInfo.cs
- DataGridTextBoxColumn.cs
- TextBox.cs
- BrowserTree.cs
- CompiledXpathExpr.cs
- RequestUriProcessor.cs
- FontSource.cs
- UIElementParaClient.cs
- ExpandSegmentCollection.cs
- XPathScanner.cs
- ResourceDescriptionAttribute.cs
- XmlTextReaderImplHelpers.cs
- OleDbDataReader.cs
- CodeTypeConstructor.cs
- ContextStack.cs
- TranslateTransform.cs
- Trace.cs
- PngBitmapDecoder.cs
- EventManager.cs
- TraceProvider.cs
- EventToken.cs
- ExpressionBindingCollection.cs
- Vector3DCollectionValueSerializer.cs
- NumberFormatInfo.cs
- UIAgentAsyncBeginRequest.cs
- DataControlButton.cs
- DetailsViewRow.cs
- CanExecuteRoutedEventArgs.cs
- SqlNode.cs
- BindableTemplateBuilder.cs
- AssertSection.cs
- URIFormatException.cs