XmlUrlResolver.GetEntity(Uri, String, Type) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Сопоставляет код URI с объектом, содержащим фактический ресурс.
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
Параметры
- absoluteUri
- Uri
URI, возвращаемый методом ResolveUri(Uri, String).
- role
- String
В настоящее время не используется.
- ofObjectToReturn
- Type
Тип возвращаемого объекта. В текущей реализации возвращаются только объекты Stream.
Возвращаемое значение
Объект потока или значение null
, если указан тип, отличающийся от потока.
Исключения
Параметр ofObjectToReturn
не null
и не Stream
.
Заданный URI не является абсолютным.
absoluteUri
имеет значение null
.
Есть ошибка среды выполнения (например, разрыв подключения к серверу).
Примеры
В следующем примере показаны GetEntity
методы и 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
Комментарии
Этот метод используется, когда вызывающий объект хочет сопоставить заданный URI с объектом, содержащим ресурс, который представляет URI.
Асинхронная версия этого метода см. в разделе GetEntityAsync.
Важно!
Приложение может снизить угрозы GetEntity отказа в обслуживании памяти для метода, реализовав IStream IStream , чтобы ограничить количество операций чтения байтов. Это помогает защититься от ситуаций, когда вредоносный код пытается передать в метод бесконечный поток байтов GetEntity .