Freigeben über


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

XmlException

ofObjectToReturn ist weder NULL (Nothing in Visual Basic) noch vom Typ Stream.

UriFormatException

Der angegebene URI ist kein absoluter URI.

NullReferenceException

absoluteUri ist NULL (Nothing in Visual Basic).

Exception

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.

SicherheitshinweisSicherheitshinweis

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

Weitere Ressourcen

Sicherheit und System.Xml-Anwendungen