Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Xml / System / Xml / XPath / XPathException.cs / 1 / XPathException.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace System.Xml.XPath {
using System;
using System.IO;
using System.Resources;
using System.Runtime.Serialization;
using System.Diagnostics;
using System.Security.Permissions;
// Represents the exception that is thrown when there is error processing an
// XPath expression.
[Serializable]
public class XPathException : SystemException {
// we need to keep this members for V1 serialization compatibility
string res;
string[] args;
// message != null for V1 & V2 exceptions deserialized in Whidbey
// message == null for created V2 exceptions; the exception message is stored in Exception._message
string message;
protected XPathException(SerializationInfo info, StreamingContext context) : base(info, context) {
res = (string ) info.GetValue("res" , typeof(string ));
args = (string[]) info.GetValue("args", typeof(string[]));
// deserialize optional members
string version = null;
foreach ( SerializationEntry e in info ) {
if ( e.Name == "version" ) {
version = (string)e.Value;
}
}
if (version == null) {
// deserializing V1 exception
message = CreateMessage(res, args);
}
else {
// deserializing V2 or higher exception -> exception message is serialized by the base class (Exception._message)
message = null;
}
}
[SecurityPermissionAttribute(SecurityAction.Demand,SerializationFormatter=true)]
public override void GetObjectData(SerializationInfo info, StreamingContext context) {
base.GetObjectData(info, context);
info.AddValue("res" , res );
info.AddValue("args", args);
info.AddValue("version", "2.0");
}
public XPathException() : this (string.Empty, (Exception) null) {}
public XPathException(string message) : this (message, (Exception) null) {}
public XPathException(string message, Exception innerException) :
this(Res.Xml_UserException, new string[] { message }, innerException) {
}
internal static XPathException Create(string res) {
return new XPathException(res, (string[])null);
}
internal static XPathException Create(string res, string arg) {
return new XPathException(res, new string[] { arg });
}
internal static XPathException Create(string res, string arg, string arg2) {
return new XPathException(res, new string[] { arg, arg2 });
}
internal static XPathException Create(string res, string arg, Exception innerException) {
return new XPathException(res, new string[] { arg }, innerException);
}
private XPathException(string res, string[] args) :
this(res, args, null) {
}
private XPathException(string res, string[] args, Exception inner) :
base(CreateMessage(res, args), inner) {
HResult = HResults.XmlXPath;
this.res = res;
this.args = args;
}
private static string CreateMessage(string res, string[] args) {
try {
string message = Res.GetString(res, args);
if (message == null)
message = "UNKNOWN("+res+")";
return message;
}
catch ( MissingManifestResourceException ) {
return "UNKNOWN("+res+")";
}
}
public override string Message {
get {
return (message == null) ? base.Message : message;
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ObjectStorage.cs
- Transform3DCollection.cs
- IncrementalReadDecoders.cs
- InstanceLockTracking.cs
- XPathArrayIterator.cs
- FullTextLine.cs
- RoleExceptions.cs
- PerformanceCounterPermissionEntry.cs
- Boolean.cs
- EntityClientCacheKey.cs
- WebRequestModulesSection.cs
- AutomationAttributeInfo.cs
- RefreshInfo.cs
- Italic.cs
- HandlerFactoryWrapper.cs
- BindableTemplateBuilder.cs
- ErrorWebPart.cs
- StatusBarAutomationPeer.cs
- CounterCreationDataCollection.cs
- HideDisabledControlAdapter.cs
- Utils.cs
- SamlAuthorityBinding.cs
- ForAllOperator.cs
- dataprotectionpermissionattribute.cs
- SqlInternalConnection.cs
- HyperlinkAutomationPeer.cs
- _AutoWebProxyScriptEngine.cs
- ThemeInfoAttribute.cs
- PowerModeChangedEventArgs.cs
- XmlMembersMapping.cs
- EDesignUtil.cs
- OptimizedTemplateContent.cs
- NetworkInformationException.cs
- SafeFreeMibTable.cs
- DescendentsWalkerBase.cs
- ComponentManagerBroker.cs
- VariantWrapper.cs
- DataGridLinkButton.cs
- ComponentConverter.cs
- TextElement.cs
- ValueCollectionParameterReader.cs
- NativeMethods.cs
- AliasedExpr.cs
- ZipIOExtraFieldZip64Element.cs
- Int32.cs
- SecurityContextCookieSerializer.cs
- TripleDESCryptoServiceProvider.cs
- ChildrenQuery.cs
- RequestDescription.cs
- OleDbRowUpdatingEvent.cs
- DiscoveryDocumentLinksPattern.cs
- Delegate.cs
- HMACMD5.cs
- DataPagerFieldCommandEventArgs.cs
- Style.cs
- ListBoxItemWrapperAutomationPeer.cs
- SqlProviderUtilities.cs
- IdentityReference.cs
- HtmlShimManager.cs
- RC2CryptoServiceProvider.cs
- MissingFieldException.cs
- TextTreeUndoUnit.cs
- FamilyMapCollection.cs
- RemoteWebConfigurationHost.cs
- PatternMatcher.cs
- IgnorePropertiesAttribute.cs
- NumberFormatInfo.cs
- ActiveXSite.cs
- Atom10FeedFormatter.cs
- CompoundFileReference.cs
- Interop.cs
- SamlConstants.cs
- DataGridViewControlCollection.cs
- BuildManager.cs
- DES.cs
- ClientConfigurationHost.cs
- SchemaEntity.cs
- DataGridHelper.cs
- StsCommunicationException.cs
- WizardStepBase.cs
- XmlSchemaException.cs
- WebPartActionVerb.cs
- ProcessingInstructionAction.cs
- BaseCodeDomTreeGenerator.cs
- CompositeScriptReferenceEventArgs.cs
- PropertyChangingEventArgs.cs
- AnonymousIdentificationSection.cs
- ErrorRuntimeConfig.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ResourceDisplayNameAttribute.cs
- LoginName.cs
- ViewSimplifier.cs
- LicFileLicenseProvider.cs
- RTLAwareMessageBox.cs
- DecoderNLS.cs
- RepeaterCommandEventArgs.cs
- WebPartChrome.cs
- BitmapMetadataEnumerator.cs
- DataColumnChangeEvent.cs
- EntryPointNotFoundException.cs