c# - .NET MAUI 和 Jetbrains Rider 中平台特定代码的问题

标签 c# rider .net-maui

我遇到了以下问题。我尝试从 Microsoft 教程调用 .NET MAUI 中的平台特定代码。 https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/invoke-platform-code

这里的问题是它可以用 Visual Studio 编译和构建,但是用 Jetbrains 的 Rider 不能编译。 我收到以下错误消息:

DeviceOrientationService.cs(5, 38):[CS8795] 分部方法“DeviceOrientationService.GetOrientation()”必须具有实现部分,因为它具有可访问性修饰符。

有人知道我错过了什么吗?

最佳答案

所以问题是您需要在所有平台类上为您的抽象方法创建一个实现,以便它能够构建,因为您的目标是多个平台。

因此,就像您在 Android 和 iOS 平台上实现了一样,您也需要在其他平台上实现。

还有另一种方法,您可以创建一个抽象方法,其中包含一个已经在其他平台上执行某些操作的实现,因此假设此方法仅与 Android 和 iOS 相关,那么您可以在 this class 中执行类似下面的操作。 :

public partial class DeviceOrientationService
{
 #if ANDROID || IOS
    public partial DeviceOrientation GetOrientation();
 #else
    public partial DeviceOrientation GetOrientation()
    {
         return DeviceOrientation.Undefiend;
    }
 #endif
}

此外,如果您不想支持 Tizen、Windows 或 MacCatalyst,您只需从 csproj 文件中删除它们的引用,然后您可以删除它们的平台文件夹,您根本不需要执行上述操作您的应用程序将只需要上述项目的 Android 和 iOS 代码。

关于c# - .NET MAUI 和 Jetbrains Rider 中平台特定代码的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74094366/

相关文章:

c# - 在 Rider 中重新编译 ASP.NET Core 应用程序而无需重复重新运行它

c# - 如何更改 JetBrains 应用程序新函数格式

maui - 如何在maui项目中添加drawingView

c# - 如何在 MAUI 中删除操作栏

xamarin.forms - 使用 .Net Maui 发送 WhatsApp 消息

c# - 减少图像中的色彩深度不会减小文件大小吗?

c# - 将 GetAwaiter().GetResult() 与 ServiceBusReceiver.PeekMessagesAsync 一起使用时出现 System.InvalidOperationException

c# - 找到 VS 2010 Pro 中未使用的所有对象以便可以安全地删除它们?

c# - 第一次使用 AJAX,示例不适合我

python - Azure Function + Rider Credential 问题导致 "Message: AKV10032"错误