Перевести фрагмент кода из C# в VB
Мне нужно перевести строку 4 во фрагменте кода ниже в VB. По какой-то причине я не могу сделать это сегодня вечером. Я слишком устала или у меня утечка мозгов... Вы можете помочь?
var provider = new NativeApplicationClient(GoogleAuthenticationServer.Description);
provider.ClientIdentifier = ClientCredentials.ClientID;
provider.ClientSecret = ClientCredentials.ClientSecret;
var auth = new OAuth2Authenticator<NativeApplicationClient>(provider, GetAuthentication);
Инструменты перевода позволили мне зайти так далеко, но это неправильно.
Dim provider As NativeApplicationClient = New NativeApplicationClient(GoogleAuthenticationServer.Description)
provider.ClientIdentifier = ClientCredentials.ClientID
provider.ClientSecret = ClientCredentials.ClientSecret
Dim auth As OAuth2Authenticator(Of NativeApplicationClient) = New OAuth2Authenticator(Of NativeApplicationClient)(provider, GetAuthorization)
Метод GetAuthorization имеет следующую подпись.
Private Function GetAuthorization(ByVal arg As NativeApplicationClient) As IAuthorizationState
4 ответа
Решение
Тебе нужно AddressOf
Dim auth As OAuth2Authenticator(Of NativeApplicationClient) = New OAuth2Authenticator(Of NativeApplicationClient)(provider, AddressOf GetAuthorization)
Обратитесь к этому веб-сайту для перевода любого кода с C# на VB, и код после преобразования
Dim provider = New NativeApplicationClient(GoogleAuthenticationServer.Description)
provider.ClientIdentifier = ClientCredentials.ClientID
provider.ClientSecret = ClientCredentials.ClientSecret
Dim auth = New OAuth2Authenticator(Of NativeApplicationClient)(provider, GetAuthentication)
Вы пытаетесь использовать OAuth2Authenticator для GetAuthorization, и они разные, возможно, это ваша проблема.
AddressOf никогда не вызывает функцию, вам нужно использовать
Dim getAuth As Func(Of NativeApplicationClient, IAuthorizationState) = AddressOf GetAuthorization
Dim auth As New OAuth2Authenticator(Of NativeApplicationClient)(provider, getAuth)