XmlUrlResolver.GetEntity(Uri, String, Type) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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 .