.Net Maui Slim Bindings (взаимодействие с собственной библиотекой)C#

Место общения программистов C#
Ответить
Anonymous
 .Net Maui Slim Bindings (взаимодействие с собственной библиотекой)

Сообщение Anonymous »

Я опытный разработчик WPF, пытающийся проникнуть в разработку мобильных приложений с помощью .Net Maui.
Я провел целый день, пытаясь понять, как создать простой образец на основе Maui. Репозиторий NativeLibraryInterop.
Я изо всех сил пытаюсь понять проблему, которая кажется довольно простой: как правильно использовать директивы using.
Я нашел этот репозиторий, этот пост в блоге и этот поверхностный YouTube. контент, все они пытаются дать введение в тему, но, к сожалению, даже не затрагивают, казалось бы, самую тривиальную отправную точку: как скомпилировать эту штуку и заставить ее работать!
Решение состоит из трех проектов: один и два шаблона привязки Maui: один для Android, другой для iOS/Mac.
Я начал с Android... Он все предполагает, что собственный проект Java следует просто скомпилировать с помощью Android Studio и вуаля, все должно работать нормально, и я смогу использовать такие «тонкие привязки» в классе ниже.

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

    namespace MauiSample;

#if IOS || MACCATALYST
using NewBinding = NewBindingMaciOS.DotnetNewBinding;
#elif ANDROID
using NewBinding = NewBindingAndroid.DotnetNewBinding;
#elif (NETSTANDARD || !PLATFORM) || (NET6_0_OR_GREATER && !IOS && !ANDROID)
using NewBinding = System.Object;
#endif

public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();

// Call the native binding, which will append a platform specific string to the input string
var labelText = NewBinding.GetString("Community Toolkit");

newBindingSampleLabel.Text = "Hello, " + labelText;
}

async void OnDocsButtonClicked(object sender, EventArgs e)
{
try
{
Uri uri = new Uri("https://learn.microsoft.com/dotnet/communitytoolkit/maui/native-library-interop/get-started");
await Browser.Default.OpenAsync(uri, BrowserLaunchMode.SystemPreferred);
}
catch (Exception ex)
{
throw new Exception("Browser failed to launch", ex);
}
}
}
Однако я не смог найти никаких способов использования директив using без файла .cs где-либо еще в коде, как указано в официальном образце репозитория GitHub.

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

    #if IOS || MACCATALYST
using NewBinding = NewBindingMaciOS.DotnetNewBinding;
#elif ANDROID
using NewBinding = NewBindingAndroid.DotnetNewBinding;
#elif (NETSTANDARD || !PLATFORM) || (NET6_0_OR_GREATER && !IOS && !ANDROID)
using NewBinding = System.Object;
#endif
Откуда берутся эти «NewBindingMaciOS.DotnetNewBinding» и «NewBindingAndroid.DotnetNewBinding»? Что ж, поскольку это казалось ошибкой, я попытался заменить ее следующим образом, но безуспешно...

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

    #if IOS || MACCATALYST
using NewBinding = NewBinding.Android.Binding;
#elif ANDROID
using NewBinding = NewBinding.MaciOS.Binding;
#elif (NETSTANDARD || !PLATFORM) || (NET6_0_OR_GREATER && !IOS && !ANDROID)
using NewBinding = System.Object;
#endif
Возможно, мне не хватает чего-то очень и очень простого, что мешает мне двигаться вперед. Буду признателен, если кто-нибудь сможет помочь.


Подробнее здесь: https://stackoverflow.com/questions/793 ... ry-interop
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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