У меня есть этот код, который работает в iOS :
namespace Login.iOS
{
class Authenticate
{
public async Task LoginAsync()
{
var client = new Auth0Client(new Auth0ClientOptions
{
Domain = "difiore.auth0.com",
ClientId = "Key goes here"
});
var loginResult = await client.LoginAsync();
}
}
}
, а также его эквивалент для Android :
namespace Login.Droid
{
class Authenticate
{
public async Task LoginAsync()
{
var client = new Auth0Client(new Auth0ClientOptions
{
Domain = "difiore.auth0.com",
ClientId = "Key goes here"
});
var loginResult = await client.LoginAsync();
}
}
}
Поскольку оба зависят от библиотек, специально написанных для платформы, они должны быть привязаны к конкретной платформе.
Тогда у меня есть общий код, который должен вызывать:
namespace Login
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class MainPage : ContentPage
{
public MainPage ()
{
InitializeComponent ();
}
private void Login_Clicked(object sender, EventArgs e)
{
Navigation.PushAsync(new Authenticate());
}
}
}
Но кодСтрока
Navigation.PushAsync(new Authenticate());
, очевидно, неверна, так как она не идентифицирует вызываемую подпрограмму.
Как я могу вызвать специфичную для платформы подпрограмму из общей?Это класс Authenticate в IOS и Android.