static void OnGetToken(IAsyncResult result)
            {
                if (result.CompletedSynchronously)
                {
                    return;
                }

                GetUserNameCredentialAsyncResult thisPtr = (GetUserNameCredentialAsyncResult)result.AsyncState;

                Exception completionException = null;

                try
                {
                    thisPtr.CompleteGetToken(result);
                }
#pragma warning suppress 56500 // [....], transferring exception to another thread
                catch (Exception e)
                {
                    if (Fx.IsFatal(e))
                    {
                        throw;
                    }
                    completionException = e;
                }
                thisPtr.Complete(false, completionException);
            }
            public static NetworkCredential End(IAsyncResult result)
            {
                GetUserNameCredentialAsyncResult thisPtr = AsyncResult.End <GetUserNameCredentialAsyncResult>(result);

                return(thisPtr.credential);
            }
 public static NetworkCredential EndGetUserNameCredential(IAsyncResult result)
 {
     return(GetUserNameCredentialAsyncResult.End(result));
 }