Shiny IBleManager имеет значение null .NET MAUIC#

Место общения программистов C#
Anonymous
Shiny IBleManager имеет значение null .NET MAUI

Сообщение Anonymous »

Я пытаюсь использовать Shiny.NET в своем проекте maui для Bluetooth, для этого я установил зависимости Shiny.BluetoothLE и Shiny.Hosting.Maui, как указано на странице документации.
Однако я получаю нулевой BleManager даже после использования внедрения зависимостей для его использования.
MauiProgram.cs

Код: Выделить всё

using Microsoft.Extensions.Logging;
using Shiny;
using Shiny.BluetoothLE;

namespace shinyTest
{
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder
.UseMauiApp()
.UseShiny()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
})
.Services.AddSingleton();

#if DEBUG
builder.Logging.AddDebug();
#endif

return builder.Build();
}
}
}
MainPage.xaml.cs

Код: Выделить всё

using Shiny.BluetoothLE;

namespace shinyTest
{
public partial class MainPage : ContentPage
{
int count = 0;
private IBleManager bleManager;
public MainPage(IBleManager bleManager)
{
InitializeComponent();
this.bleManager = bleManager;
}

public MainPage()
{
InitializeComponent();
}

private async void OnCounterClicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new BluePage(bleManager));
}
}

}
BluePage.xaml.cs

Код: Выделить всё

using Shiny;
using Shiny.BluetoothLE;
using System.Collections.Generic;
using System.Reactive.Linq;

namespace shinyTest;

public partial class BluePage : ContentPage
{
private IBleManager _bleManager;
public BluePage(IBleManager bleManager)
{
InitializeComponent();
_bleManager = bleManager;
}
private async void scan_btn_Clicked(object sender, EventArgs e)
{
if(_bleManager==null)
{
await DisplayAlert("Null bleManager", "BLE is NULL", "OK");
return;
}
IEnumerable connected_devices;

try
{
connected_devices = _bleManager.GetConnectedPeripherals();

await DisplayAlert("Connected Devices", $"{connected_devices}", "Ok");
}
catch (Exception ex)
{
await DisplayAlert("Exception", $"{ex.Message}", "ok");
}
}
}
при нажатии кнопки отображается предупреждение Null BleManager. А при удалении этой проверки «если» возникает исключение «Ссылка на объект не установлена ​​на экземпляр объекта».
Помощь оценена!

Подробнее здесь: https://stackoverflow.com/questions/784 ... l-net-maui

Вернуться в «C#»