XmlUrlResolver::GetEntity Method (Uri^, String^, Type^)
Maps a URI to an object that contains the actual resource.
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.
| 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.
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() ); } }
Available since 1.1
