XmlUrlResolver.GetEntity(Uri, String, Type) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ordnet einem Objekt, das die eigentliche Ressource enthält, einen URI zu.
public:
override System::Object ^ GetEntity(Uri ^ absoluteUri, System::String ^ role, Type ^ ofObjectToReturn);
public override object? GetEntity (Uri absoluteUri, string? role, Type? ofObjectToReturn);
public override object GetEntity (Uri absoluteUri, string role, Type ofObjectToReturn);
override this.GetEntity : Uri * string * Type -> obj
Public Overrides Function GetEntity (absoluteUri As Uri, role As String, ofObjectToReturn As Type) As Object
Parameter
- absoluteUri
- Uri
Der von ResolveUri(Uri, String) zurückgegebene URI.
- role
- String
Derzeit nicht verwendet.
- ofObjectToReturn
- Type
Der Typ des zurückzugebenden Objekts. Die aktuelle Implementierung gibt nur Stream-Objekte zurück.
Gibt zurück
Ein stream-Objekt oder null
, wenn ein anderer Typ als „stream“ angegeben ist.
Ausnahmen
ofObjectToReturn
ist weder null
noch vom Typ Stream
.
Der angegebene URI ist kein absoluter URI.
absoluteUri
ist null
.
Es ist ein Laufzeitfehler aufgetreten (z. B. eine unterbrochene Serververbindung).
Beispiele
Das folgende Beispiel veranschaulicht die GetEntity
und ResolveUri Methoden.
#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( "http://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() );
}
}
using System;
using System.IO;
using System.Xml;
public class Sample
{
public static void Main()
{
XmlUrlResolver resolver = new XmlUrlResolver();
Uri baseUri = new Uri ("http://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());
}
}
}
Imports System.IO
Imports System.Xml
Public Class Sample
Public Shared Sub Main()
Dim resolver As New XmlUrlResolver()
Dim baseUri As New Uri("http://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
End Class
Hinweise
Diese Methode wird verwendet, wenn der Aufrufer einen bestimmten URI einem Objekt zuordnen möchte, das die Ressource enthält, die der URI darstellt.
Die asynchrone Version dieser Methode finden Sie unter GetEntityAsync.
Wichtig
Ihre Anwendung kann die Speicherverweigerung von Dienstbedrohungen für die GetEntity Methode verringern, indem IStream IStream implementiert wird, um die Anzahl der Bytes zu begrenzen. Dadurch können Sie vor Situationen schützen, in denen böswilliger Code versucht, einen unendlichen Bytestrom an die GetEntity Methode zu übergeben.