Moin zusammen
ich bin gerade dabei, eine Funktion zu schreiben, die meinen User autorisiert, mit meiner App Daten von Discogs zu laden (mit dem NuGet-Paket DiscogsClient). Nur leider sieht es so aus, als ob der Server nicht antwortet. Wenn ich die Funktion ausführe, ist in Zeile 3 Schluss, und es passiert rein gar nichts, auch keine Fehlermeldung:
Das hier ist das Demoprogramm, das funktioniert tadellos:
Ich hab mir das ganze automatisch nach VB übersetzen lassen.
Die einzige Änderung, die ich vorgenommen habe, war, dass ich
BC30369: Cannot refer to an instance member of a class from within a shared method or shared member initializer without an explicit instance of the class
Auf einen Instanzmember einer Klasse kann nicht ohne explizite Instanz einer Klasse von einer/einem freigegebenen Member / Methode aus verwiesen werden.
Hab mir mal durchgelesen, was dieses
Den ersten Code in Zeile 3 versteh ich auch nicht so ganz, ist da vielleicht ein Fehler beim Übersetzen nach VB drin. Mein Virenscanner meldet jedenfalls dass eine Verbindung aufgebaut wird, aber wie gesagt, wenn ich dann auf "Zulassen" klicke, passiert gar nichts...
ich bin gerade dabei, eine Funktion zu schreiben, die meinen User autorisiert, mit meiner App Daten von Discogs zu laden (mit dem NuGet-Paket DiscogsClient). Nur leider sieht es so aus, als ob der Server nicht antwortet. Wenn ich die Funktion ausführe, ist in Zeile 3 Schluss, und es passiert rein gar nichts, auch keine Fehlermeldung:
VB.NET-Quellcode
- Dim OAuthConsumerInformation = New OAuthConsumerInformation("MeinConsumerKey", "MeinConsumerSecret")
- Dim discogsClient = New DiscogsAuthentifierClient(OAuthConsumerInformation)
- Dim aouth = discogsClient.Authorize(Function(s) Task.FromResult(GetToken(s))).Result
- Dim successString As String = ""
- If aouth IsNot Nothing Then successString = "erfolgreich." Else successString = "nicht erfolgreich."
VB.NET-Quellcode
- Private Function GetToken(ByVal url As String) As String
- Process.Start(url)
- Dim InputVM = New ViewModel.InputBoxDialogViewModel("Bitte registriere dich bei Discogs. Dein Standardbrowser hat sich jetzt automatisch geöffnet. Nach der Registrierung, wenn du nicht bereits registriert bist, wird ein Code angezeigt. Bitte gebe diesen hier ein:")
- dialogService.ShowModalDialog("", InputVM, Me, True, False, Services.WindowStyle.None, Services.ResizeMode.NoResize, 500, Services.SizeToContent.Height, Services.WindowStartupLocation.CenterScreen, "")
- 'Console.WriteLine("Please authourize the application and enter the final key in the console")
- 'Dim tokenKey As String = Console.ReadLine()
- Dim tokenkey As String = InputVM.InputText
- tokenkey = If(String.IsNullOrEmpty(tokenkey), Nothing, tokenkey)
- Return tokenkey
- End Function
Das hier ist das Demoprogramm, das funktioniert tadellos:
C#-Quellcode
- namespace DiscogsAuthenticationConsole
- {
- public class Program
- {
- public static void Main(string[] args)
- {
- var oAuthConsumerInformation = new OAuthConsumerInformation("MeinConsumerKey", "MeinConsumerSecret");
- var discogsClient = new DiscogsAuthentifierClient(oAuthConsumerInformation);
- var aouth = discogsClient.Authorize(s => Task.FromResult(GetToken(s))).Result;
- Console.WriteLine($"{((aouth != null) ? "Success" : "Fail")}");
- Console.WriteLine($"Token:{aouth?.TokenInformation?.Token}, TokenSecret:{aouth?.TokenInformation?.TokenSecret}");
- Console.ReadLine();
- }
- private static string GetToken(string url)
- {
- Console.WriteLine("Please authourize the application and enter the final key in the console");
- Process.Start(url);
- string tokenKey = Console.ReadLine();
- tokenKey = string.IsNullOrEmpty(tokenKey) ? null : tokenKey;
- return tokenKey;
- }
- }
- }
Ich hab mir das ganze automatisch nach VB übersetzen lassen.
Die einzige Änderung, die ich vorgenommen habe, war, dass ich
Private Function GetToken
nicht als Shared
deklariert habe, denn da kam bei mir der Fehler in der Zeile, wo ich die InputBox aufrufe mit dialog.ShowModalDialog()
:BC30369: Cannot refer to an instance member of a class from within a shared method or shared member initializer without an explicit instance of the class
Auf einen Instanzmember einer Klasse kann nicht ohne explizite Instanz einer Klasse von einer/einem freigegebenen Member / Methode aus verwiesen werden.
Hab mir mal durchgelesen, was dieses
Shared
genau macht, aber so wie ich dass sehe, sollte das eigentlich nix damit zu tun haben oder?Den ersten Code in Zeile 3 versteh ich auch nicht so ganz, ist da vielleicht ein Fehler beim Übersetzen nach VB drin. Mein Virenscanner meldet jedenfalls dass eine Verbindung aufgebaut wird, aber wie gesagt, wenn ich dann auf "Zulassen" klicke, passiert gar nichts...
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „kafffee“ ()