Xamarin DependencyService.Get<&燃气轮机;()不工作

Xamarin DependencyService.Get<&燃气轮机;()不工作,xamarin,dependency-injection,xamarin.forms,Xamarin,Dependency Injection,Xamarin.forms,我正在用xamarin.forms开发一个应用程序,它可以播放一些声音。 为此创建了一个接口“IAudioPlayer” namespace ClassLibrary.AudioPlayer { public interface IAudioPlayer { void PlayAudio(string filename); } } 在droid项目中,我实现了如下: using System; using Android.Media; using Xam

我正在用xamarin.forms开发一个应用程序,它可以播放一些声音。 为此创建了一个接口“IAudioPlayer”

namespace ClassLibrary.AudioPlayer
{
    public interface IAudioPlayer
    {
        void PlayAudio(string filename);
    }
}
在droid项目中,我实现了如下:

using System;
using Android.Media;
using Xamarin.Forms;

[assembly: Dependency(typeof(myApp.Droid.AudioPlayer_Android))]

namespace myApp.Droid
{
    public class AudioPlayer_Android : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity, ClassLibrary.AudioPlayer.IAudioPlayer, AudioTrack.IOnPlaybackPositionUpdateListener
    {
        public void PlayAudio(string filename)
        {
            var player = new MediaPlayer();
            var fd     = global::Android.App.Application.Context.Assets.OpenFd(filename);

            player.Prepared += (s, e) =>
            {
                player.Start();
            };

            player.SetDataSource(fd.FileDescriptor, fd.StartOffset, fd.Length);
            player.Prepare();
        }

        public void OnMarkerReached(AudioTrack track)
        {
            throw new NotImplementedException();
        }

        public void OnPeriodicNotification(AudioTrack track)
        {
            throw new NotImplementedException();
        }
    }
}
现在,当我调用
DependencyService.Get()时它会中断并说“在类型“Xamarin.Forms.DependencyService”中找不到方法“Get”。
当im将
DependencyService.Get()
与其他类型(例如本地DB实现)一起使用时,它可以正常工作


你知道我做错了什么吗?

你的
IAudioPlayer
实现是一个安卓
活动
。依赖关系服务将尝试创建它的一个实例-可能不是一个好主意。我无法真正解释你得到的错误,但你应该创建一个只使用一个接口的具体实现:

public class MyAndroidPlyer : IAudioPlayer
{}
表单依赖项服务只有非常基本的功能(您可以查看源代码)

如果你需要更复杂的东西,还有其他选择,比如