XmlUrlResolver.GetEntity-Methode
Ordnet einem Objekt, das die eigentliche Ressource enthält, einen URI zu.
Namespace: System.Xml
Assembly: System.Xml (in system.xml.dll)
Syntax
'Declaration
Public Overrides Function GetEntity ( _
absoluteUri As Uri, _
role As String, _
ofObjectToReturn As Type _
) As Object
'Usage
Dim instance As XmlUrlResolver
Dim absoluteUri As Uri
Dim role As String
Dim ofObjectToReturn As Type
Dim returnValue As Object
returnValue = instance.GetEntity(absoluteUri, role, ofObjectToReturn)
public override Object GetEntity (
Uri absoluteUri,
string role,
Type ofObjectToReturn
)
public:
virtual Object^ GetEntity (
Uri^ absoluteUri,
String^ role,
Type^ ofObjectToReturn
) override
public Object GetEntity (
Uri absoluteUri,
String role,
Type ofObjectToReturn
)
public override function GetEntity (
absoluteUri : Uri,
role : String,
ofObjectToReturn : Type
) : Object
Parameter
- absoluteUri
Der vom ResolveUri zurückgegebene URI.
- role
In der aktuellen Implementierung wird dieser Parameter beim Auflösen von URIs nicht verwendet. Er wird für die spätere Erweiterbarkeit bereitgestellt. Er kann z. B. xlink:role zugeordnet und als implementierungsspezifisches Argument in anderen Szenarios verwendet werden.
- ofObjectToReturn
Der Typ des zurückzugebenden Objekts. Die aktuelle Implementierung gibt nur System.IO.Stream zurück.
Rückgabewert
Ein System.IO.Stream-Objekt oder NULL (Nothing in Visual Basic), wenn ein anderer Typ als Stream angegeben ist.
Ausnahmen
Ausnahmetyp | Bedingung |
---|---|
ofObjectToReturn ist weder NULL (Nothing in Visual Basic) noch vom Typ Stream. |
|
Der angegebene URI ist kein absoluter URI. |
|
absoluteUri ist NULL (Nothing in Visual Basic). |
|
Es ist ein Laufzeitfehler aufgetreten (z. B. eine unterbrochene Serververbindung). |
Hinweise
Diese Methode wird verwendet, wenn der Aufrufer einen angegebenen URI einem Objekt zuweisen möchte, das die vom URI dargestellte Ressource enthält.
![]() |
---|
In der Anwendung kann die Gefahr von Denial-of-Service-Angriffen für die GetEntity-Methode im Arbeitsspeicher verringert werden, indem Sie einen als Wrapper implementierten IStream implementieren, der die Anzahl von gelesenen Bytes beschränkt. Dies hilft dabei, Situationen abzuwenden, in denen böswilliger Code versucht, einen unendlichen Stream von Bytes an die GetEntity-Methode zu übergeben. |
Beispiel
Das folgende Beispiel veranschaulicht die GetEntity-Methode und die ResolveUri-Methode.
Imports System
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
Dim resolver As New XmlUrlResolver()
Dim baseUri As New Uri("https://servername/tmp/test.xsl")
Dim fulluri As Uri = resolver.ResolveUri(baseUri, "includefile.xsl")
' Get a stream object containing the XSL file
Dim s As Stream = CType(resolver.GetEntity(fulluri, Nothing, GetType(Stream)), Stream)
' Read the stream object displaying the contents of the XSL file
Dim reader As New XmlTextReader(s)
While reader.Read()
Console.WriteLine(reader.ReadOuterXml())
End While
End Sub 'New
End Class 'Sample
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
XmlUrlResolver resolver = new XmlUrlResolver();
Uri baseUri = new Uri ("https://servername/tmp/test.xsl");
Uri fulluri=resolver.ResolveUri(baseUri, "includefile.xsl");
// Get a stream object containing the XSL file
Stream s=(Stream)resolver.GetEntity(fulluri, null, typeof(Stream));
// Read the stream object displaying the contents of the XSL file
XmlTextReader reader = new XmlTextReader(s);
while (reader.Read())
{
Console.WriteLine(reader.ReadOuterXml());
}
}
}
#using <System.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
Uri^ baseUri = gcnew Uri( "https://servername/tmp/test.xsl" );
Uri^ fulluri = resolver->ResolveUri( baseUri, "includefile.xsl" );
// Get a stream object containing the XSL file
Stream^ s = dynamic_cast<Stream^>(resolver->GetEntity( fulluri, nullptr, Stream::typeid ));
// Read the stream object displaying the contents of the XSL file
XmlTextReader^ reader = gcnew XmlTextReader( s );
while ( reader->Read() )
{
Console::WriteLine( reader->ReadOuterXml() );
}
}
import System.*;
import System.IO.*;
import System.Xml.*;
public class Sample
{
public static void main(String[] args)
{
XmlUrlResolver resolver = new XmlUrlResolver();
Uri baseUri = new Uri("https://servername/tmp/test.xsl");
Uri fullUri = resolver.ResolveUri(baseUri, "includefile.xsl");
// Get a stream object containing the XSL file
Stream s = ((Stream)(resolver.GetEntity(fullUri, null,
Stream.class.ToType())));
// Read the stream object displaying the contents of the XSL file
XmlTextReader reader = new XmlTextReader(s);
while(reader.Read()) {
Console.WriteLine(reader.ReadOuterXml());
}
} //main
} //Sample
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0
Siehe auch
Referenz
XmlUrlResolver-Klasse
XmlUrlResolver-Member
System.Xml-Namespace
Uri