Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / XPath / XPathException.cs / 2 / 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
- HttpPostedFileWrapper.cs
- BuiltInPermissionSets.cs
- DataSysAttribute.cs
- TextFormatter.cs
- ASCIIEncoding.cs
- IdnMapping.cs
- SoapSchemaImporter.cs
- CssClassPropertyAttribute.cs
- ConfigurationPermission.cs
- HealthMonitoringSection.cs
- XmlObjectSerializer.cs
- CodeRegionDirective.cs
- Vector3DAnimationBase.cs
- ProcessModule.cs
- StateDesigner.cs
- SqlErrorCollection.cs
- XmlElementCollection.cs
- ServiceModelConfiguration.cs
- IncrementalReadDecoders.cs
- AvTraceFormat.cs
- _RegBlobWebProxyDataBuilder.cs
- PropertyDescriptor.cs
- EndPoint.cs
- ExpressionBuilderCollection.cs
- DayRenderEvent.cs
- UnitySerializationHolder.cs
- MessageSecurityOverTcp.cs
- ProfileGroupSettingsCollection.cs
- UserControlParser.cs
- Token.cs
- ListItemCollection.cs
- PassportPrincipal.cs
- ASCIIEncoding.cs
- SurrogateChar.cs
- PersonalizationDictionary.cs
- VectorAnimationUsingKeyFrames.cs
- ToolBarButton.cs
- LocatorGroup.cs
- FontStretches.cs
- ZipIOLocalFileHeader.cs
- SafePointer.cs
- DataBinder.cs
- SqlUserDefinedTypeAttribute.cs
- CngUIPolicy.cs
- _LazyAsyncResult.cs
- AddInProcess.cs
- IpcClientManager.cs
- StorageMappingItemCollection.cs
- SqlDataSourceSelectingEventArgs.cs
- SspiWrapper.cs
- DataBinding.cs
- TheQuery.cs
- PropertyChangedEventManager.cs
- GetImportedCardRequest.cs
- EnterpriseServicesHelper.cs
- PrintController.cs
- GestureRecognitionResult.cs
- IsolatedStorageFile.cs
- CollectionBase.cs
- Block.cs
- BindingExpressionUncommonField.cs
- XmlTextEncoder.cs
- SqlPersonalizationProvider.cs
- FileClassifier.cs
- DataGridViewColumnCollection.cs
- Boolean.cs
- ClientUIRequest.cs
- ToolStripRenderer.cs
- ContentDisposition.cs
- EntityDesignerDataSourceView.cs
- ClientConvert.cs
- EDesignUtil.cs
- DirectoryInfo.cs
- NewArray.cs
- DbTransaction.cs
- SchemaName.cs
- UxThemeWrapper.cs
- JoinTreeSlot.cs
- IIS7ConfigurationLoader.cs
- BitmapEffect.cs
- RoleServiceManager.cs
- CodeSubDirectoriesCollection.cs
- WindowsAuthenticationModule.cs
- InternalConfigRoot.cs
- DataGridViewImageColumn.cs
- Crypto.cs
- FocusWithinProperty.cs
- MethodBody.cs
- MarkupWriter.cs
- InstalledVoice.cs
- UserNameSecurityToken.cs
- ExitEventArgs.cs
- UIElementIsland.cs
- _ListenerRequestStream.cs
- EpmContentSerializer.cs
- XmlSchemaAttributeGroupRef.cs
- SQLDateTimeStorage.cs
- TextBlockAutomationPeer.cs
- RootBrowserWindowAutomationPeer.cs
- LeaseManager.cs