Я пытаюсь сделать так, чтобы эти классы совместно использовали некоторые данные, я прочитал, что правильный способ сделать это - через интерфейс, но MainPage.xaml.cs не распознает «ссылку».Что мне нужно добавить в MainPage.xaml.cs, чтобы он работал?
Class1.cs:
namespace interfaceWebnav
{
public interface IPortableInterface
{
object Test();
}
}
MediaService.cs
using interfaceWebnav;
namespace ComprarMusicas
{
public class MediaService : Java.Lang.Object, IPortableInterface
{
public object Test()
{
//do something
}
}
}
MainActivity.cs:
...
...
using interfaceWebnav;
[assembly: Dependency(typeof(IPortableInterface))]
namespace MyApp.Droid
{
[Activity(Label = "Comprar Músicas", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, NoHistory = true,ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle savedInstanceState)
{
............
base.OnCreate(savedInstanceState);
global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
LoadApplication(new App());
}
}
public override void OnBackPressed()
{
// here I need to know what SomeMethod() from MainPage.xaml.cs is saying
}
}
MainPage.xaml.cs (я прокомментировал некоторые из моих попыток заставить его работать):
using Xamarin.Forms;
// using interfaceWebnav;
// [assembly: Dependency(typeof(IPortableInterface))]
namespace MyApp
{
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
}
}
void SomeMethod(object sender, EventArgs e)
{
object resultado = DependencyService.Get<IPortableInterface>().Test();
}
}
В MainPage.xaml.cs Visual Studio говорит о SomeMethod: «Пространство имен не может содержать элементы в виде полей или методов напрямую».
О «Get IPortableInterface» говорится:
«Не удается найти имя типа или пространства имен IPortableInterface (вам не хватает директивы using или ссылки на сборку?) "