Dns::BeginResolve Method (String^, AsyncCallback^, Object^)

 
Note: This API is now obsolete.

Begins an asynchronous request to resolve a DNS host name or IP address to an IPAddress instance.

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

public:
[ObsoleteAttribute("BeginResolve is obsoleted for this type, please use BeginGetHostEntry instead. http://go.microsoft.com/fwlink/?linkid=14202")]
[HostProtectionAttribute(SecurityAction::LinkDemand, ExternalThreading = true)]
static IAsyncResult^ BeginResolve(
	String^ hostName,
	AsyncCallback^ requestCallback,
	Object^ stateObject
)

Parameters

hostName
Type: System::String^

The DNS name of the host.

requestCallback
Type: System::AsyncCallback^

An AsyncCallback delegate that references the method to invoke when the operation is complete.

stateObject
Type: System::Object^

A user-defined object that contains information about the operation. This object is passed to the requestCallback delegate when the operation is complete.

Return Value

Type: System::IAsyncResult^

An IAsyncResult instance that references the asynchronous request.

Exception Condition
ArgumentNullException

hostName is null.

SocketException

The caller does not have permission to access DNS information.

The asynchronous BeginResolve operation must be completed by calling the EndResolve method. Typically, the method is invoked by the requestCallback delegate.

This method does not block until the operation is complete. To block until the operation is complete, use the Resolve method.

For more information about using the asynchronous programming model, see Calling Synchronous Methods Asynchronously.

System_CAPS_noteNote

This member emits trace information when you enable network tracing in your application. For more information, see Network Tracing in the .NET Framework.

The following example uses BeginResolve to resolve a DNS host name to an IPAddress.

public ref class DnsBeginGetHostByName
{
public:
   static System::Threading::ManualResetEvent^ allDone = nullptr;
   ref class RequestState
   {
   public:
      IPHostEntry^ host;
      RequestState()
      {
         host = nullptr;
      }
   };

   static void RespCallback( IAsyncResult^ ar )
   {
      try
      {
         // Convert the IAsyncResult* Object* to a RequestState Object*.
         RequestState^ tempRequestState = dynamic_cast<RequestState^>(ar->AsyncState);

         // End the asynchronous request.
         tempRequestState->host = Dns::EndResolve( ar );
         allDone->Set();
      }
      catch ( ArgumentNullException^ e ) 
      {
         Console::WriteLine( "ArgumentNullException caught!!!" );
         Console::WriteLine( "Source : {0}", e->Source );
         Console::WriteLine( "Message : {0}", e->Message );
      }
      catch ( Exception^ e ) 
      {
         Console::WriteLine( "Exception caught!!!" );
         Console::WriteLine( "Source : {0}", e->Source );
         Console::WriteLine( "Message : {0}", e->Message );
      }
   }
};

int main()
{
   DnsBeginGetHostByName::allDone = gcnew ManualResetEvent( false );

   // Create an instance of the RequestState class.
   DnsBeginGetHostByName::RequestState^ myRequestState =
      gcnew DnsBeginGetHostByName::RequestState;

   // Begin an asynchronous request for information like host name, IP addresses, or
   // aliases for specified the specified URI.
   IAsyncResult^ asyncResult = Dns::BeginResolve( "www.contoso.com",
      gcnew AsyncCallback( DnsBeginGetHostByName::RespCallback ), myRequestState );

   // Wait until asynchronous call completes.
   DnsBeginGetHostByName::allDone->WaitOne();
   Console::WriteLine( "Host name : {0}", myRequestState->host->HostName );
   Console::WriteLine( "\nIP address list : " );
   for ( int index = 0; index < myRequestState->host->AddressList->Length; index++ )
      Console::WriteLine( myRequestState->host->AddressList[ index ] );
   Console::WriteLine( "\nAliases : " );
   for ( int index = 0; index < myRequestState->host->Aliases->Length; index++ )
      Console::WriteLine( myRequestState->host->Aliases[ index ] );
}

DnsPermission

for accessing DNS information. Associated enumeration: PermissionState::Unrestricted

.NET Framework
Available since 1.1
Return to top
Show: