У меня есть интерфейс Xamarin Forms, который определяет контроллер Bluetooth.Я использую обычную технику, когда пытаюсь создать специфичную для Android реализацию этого (я также сделаю iOS, когда получу эту работу).
Я определяю свой интерфейс следующим образом:
namespace ArduinoRobotController.Models
{
public interface BluetoothControllerInterface
{
List<string> GetPairedDevices();
..
Затем у меня есть реализация для моей платформы, подобная этой:
[assembly: Xamarin.Forms.Dependency(typeof(BluetoothControllerInterface))]
namespace ArduinoRobotController.Droid.Implementations
{
public class BluetoothController : BluetoothControllerInterface
{
..
Затем, наконец, вернемся к одной из моих моделей представлений, у меня есть этот код для получения нужного экземпляра для платформы:
BluetoothControllerInterface bt = Xamarin.Forms.DependencyService.Get<BluetoothControllerInterface>();
Он строит и работает, но вылетает в строке выше.Состояния ошибки:
System.MissingMethodException: не найден конструктор по умолчанию для типа ArduinoRobotController.Models.BluetoothControllerInterface в SystemRuntimeType.CreateInstanceMono
.. и т. Д.
1017
Я пробовал много разных способов сделать это, в том числе вызывать, чтобы зарегистрировать реализацию в обычном коде, а не как [assembly
и т. Д. Любая помощь в этом действительно приветствуется.