Classe XmlResolver (System.Xml)

Cambia visualizzazione:
ScriptFree
Riferimento a .NET Framework
Classe XmlResolver

Risolve risorse XML esterne denominate da un URI (Uniform Resource Identifier).

Spazio dei nomi: System.Xml
Assembly: System.Xml (in system.xml.dll)

Sintassi

Visual Basic - (Dichiarazione)
Public MustInherit Class XmlResolver
Visual Basic (Utilizzo)
Dim instance As XmlResolver

C#
public abstract class XmlResolver
C++
public ref class XmlResolver abstract
J#
public abstract class XmlResolver
JScript
public abstract class XmlResolver
Note

L'oggetto XmlResolver viene utilizzato per risolvere risorse XML esterne, quali entità, DTD (Document Type Definition) o schemi, nonché per elaborare elementi di inclusione e importazioni presenti in fogli di stile XSL (Extensible StyleSheet Language) o schemi XML (XSD, XML Schema Definition).

L'oggetto XmlUrlResolver è un'implementazione concreta di XmlResolver e corrisponde al sistema di risoluzione predefinito per tutte le classi dello spazio dei nomi System.Xml. È anche possibile creare un sistema di risoluzione personalizzato.

Considerazioni sulla protezione

Quando si utilizza la classe XmlResolver è opportuno tenere presenti gli elementi riportati di seguito.

  • Gli oggetti XmlResolver possono contenere informazioni riservate, ad esempio le credenziali dell'utente. Quando vengono memorizzati nella cache oggetti XmlResolver, è opportuno prestare la massima attenzione ed evitare di passare l'oggetto XmlResolver a un componente non attendibile.

  • Se si progetta una proprietà di classe che utilizza la classe XmlResolver, la proprietà deve essere definita come proprietà in sola lettura. La proprietà può essere utilizzata per specificare l'oggetto XmlResolver da utilizzare, ma non per restituire un oggetto XmlResolver.

  • Se l'applicazione in uso accetta oggetti XmlResolver da codice non attendibile, l'URI passato nel metodo GetEntity non può essere lo stesso restituito dal metodo ResolveUri. Le classi derivate dalla classe XmlResolver possono sottoporre a override il metodo GetEntity e restituire dati diversi da quelli contenuti nell'URI originale.

  • L'applicazione può ridurre i rischi di "Denial of Service" della memoria al metodo GetEntity implementando un flusso IStream che limiti il numero dei byte letti. In questo modo, è possibile evitare i tentativi di passaggio di un flusso infinito di byte al metodo GetEntity da parte di codice dannoso.

Esempio

Nell'esempio riportato di seguito viene creata una classe XmlReader che utilizza una classe XmlUrlResolver con credenziali predefinite.

Visual Basic
' Create an XmlUrlResolver with default credentials.
Dim resolver As New XmlUrlResolver()
resolver.Credentials = CredentialCache.DefaultCredentials

' Create the reader.
Dim settings As New XmlReaderSettings()
settings.XmlResolver = resolver
Dim reader As XmlReader = XmlReader.Create("http://serverName/data/books.xml")


C#

// Create an XmlUrlResolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = CredentialCache.DefaultCredentials;

// Create the reader.
XmlReaderSettings settings = new XmlReaderSettings();
settings.XmlResolver = resolver;
XmlReader reader = XmlReader.Create("http://serverName/data/books.xml");
   

Gerarchia di ereditarietà

System.Object
  System.Xml.XmlResolver
     System.Xml.XmlSecureResolver
     System.Xml.XmlUrlResolver
Codice thread safe

I membri statici pubblici (Shared in Visual Basic) di questo tipo sono validi per le operazioni multithreading. I membri di istanza non sono garantiti come thread safe.
Piattaforme

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile per Pocket PC, Windows Mobile per Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema.

Informazioni sulla versione

.NET Framework

Supportato in: 2.0 1.1 1.0

.NET Compact Framework

Supportato in: 2.0 1.0
Vedere anche