XmlUrlResolver::GetEntity Method (Uri^, String^, Type^)

 

Maps a URI to an object that contains the actual resource.

Namespace:   System.Xml
Assembly:  System.Xml (in System.Xml.dll)

public:
virtual Object^ GetEntity(
	Uri^ absoluteUri,
	String^ role,
	Type^ ofObjectToReturn
) override

Parameters

absoluteUri
Type: System::Uri^

The URI returned from ResolveUri.

role
Type: System::String^

Currently not used.

ofObjectToReturn
Type: System::Type^

The type of object to return. The current implementation only returns Stream objects.

Return Value

Type: System::Object^

A stream object or null if a type other than stream is specified.

Exception Condition
XmlException

ofObjectToReturn is neither null nor a Stream type.

UriFormatException

The specified URI is not an absolute URI.

ArgumentNullException

absoluteUri is null.

Exception

There is a runtime error (for example, an interrupted server connection).

This method is used when the caller wants to map a given URI to an object that contains the resource that the URI represents.

For the asynchronous version of this method, see GetEntityAsync.

System_CAPS_security Security Note

Your application can mitigate memory denial of service threats to the GetEntity method by implementing IStreamIStream to limit the number of bytes read. This helps guard against situations where malicious code attempts to pass an infinite stream of bytes to the GetEntity method.

The following example demonstrates the GetEntity and ResolveUri methods.

#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() );
   }
}

.NET Framework
Available since 1.1
Return to top
Show: