Comparteix a través de


XmlUrlResolver.GetEntity(Uri, String, Type) Método

Definición

Asigna un identificador URI a un objeto que contiene el recurso real.

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

Parámetros

absoluteUri
Uri

URI devuelto desde ResolveUri(Uri, String).

role
String

No se usa actualmente.

ofObjectToReturn
Type

Tipo de objeto que se va a devolver. La implementación actual solo devuelve objetos Stream.

Devoluciones

Object

Objeto de flujo o null si se especifica un tipo que no sea un flujo.

Excepciones

ofObjectToReturn no es un tipo null ni Stream.

El identificador URI especificado no es un identificador URI absoluto.

absoluteUri es null.

Se ha producido un error en tiempo de ejecución (por ejemplo, una interrupción en la conexión con el servidor).

Ejemplos

En el ejemplo siguiente se muestran los GetEntity métodos y ResolveUri .

#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

Comentarios

Este método se usa cuando el autor de la llamada quiere asignar un URI determinado a un objeto que contiene el recurso que representa el URI.

Para obtener la versión asincrónica de este método, vea GetEntityAsync.

Importante

La aplicación puede mitigar las amenazas de denegación de servicio de memoria al método mediante la GetEntity implementación de IStream IStream para limitar el número de bytes leídos. Esto ayuda a protegerse frente a situaciones en las que el código malintencionado intenta pasar un flujo infinito de bytes al GetEntity método .

Se aplica a

Consulte también