小编Cfu*_*fun的帖子

在 Visual Studio 2022 中保存时“设置代码格式”和“使用排序”

我和我的团队在过去几个月里为我们的项目定义了有关 C# 代码格式和样式的规则,因此我们最终得到了一个.editorconfig文件。

而且,我们都安装了扩展Productivity Power Tools,以便在保存文件时(CTRL+S)格式化代码,而不必使用VS内置功能Code Clean Up。当我们意识到后者需要特殊的快捷方式(CTRL+K、CTRL+E)并且团队的每个成员都需要在本地设置此设置(因为无法将其放入源代码管理中)时,我们做出了这个决定。

这种工作方式非常适合 VS 2019。

但是,在上个月,团队的大多数成员升级到 VS 2022,并且扩展Productivity Power Tools 22删除了(显然没有任何原因)Format On SaveRemove and Sort Usings on save功能。

我们显然通过扩展VSE-FormatDocumentOnSave解决了这个问题- 通过在选项Edit.FormatDocument Edit.RemoveAndSort中进行设置Commands。它似乎工作得很好,但我们担心的是,这不是微软的工具,谁知道将来会发生什么。

因此,由于代码风格和格式设置规则是每个团队都关心的问题,考虑到我们是一个由 20 多名开发人员组成的团队,我想知道是否有人知道更好的方法来管理它。

code-formatting visual-studio editorconfig visual-studio-2022

35
推荐指数
3
解决办法
4万
查看次数

15
推荐指数
6
解决办法
8760
查看次数

Xamarin 表单 Java.Lang.NoSuchMethodError

我正在制作一个使用 Firebase 消息传递的 Xamarin.Forms 应用程序。我正在关注文档,但是当我添加 Nuget 包并将我的应用程序部署到我的 Android 设备时,我收到以下错误:

Java.Lang.NoSuchMethodError: '在类 Ldagger/internal/Preconditions 中没有静态方法 checkBuilderRequirement(Ljava/lang/Object;Ljava/lang/Class;)V; 或其超类('dagger.internal.Preconditions' 的声明出现在 /data/app/com.technologygate.golden-1/base.apk 中)'

有人有想法吗?提前致谢。

android firebase xamarin xamarin.forms firebase-cloud-messaging

9
推荐指数
1
解决办法
920
查看次数

全局路由当前不能是堆栈上的唯一页面

让弹出菜单按照我想要的方式在 Xamarin Forms 中工作一直是一个很大的痛苦。我试图让某个菜单项(我的统计信息)在用户登录时转到某个页面,或者在用户未登录时转到另一个页面(登录页面)。我尝试了两种不同的方法但没有成功。

方法一

首先,我尝试在 XAML 中使用 Shell Content 中的指定路径设置弹出项目,如下所示:

<FlyoutItem Title="My Stats" Icon="icon_feed.png">
        <ShellContent x:Name="shellContent_myStats" Route="MyStatsPage" ContentTemplate="{DataTemplate local:MyStatsPage}" />
</FlyoutItem>
Run Code Online (Sandbox Code Playgroud)

然后,当用户登录/注销时,我会以编程方式修改路由:

//Logging Out
            shellContent_myStats.ContentTemplate = new DataTemplate(typeof(LoginPage));
            Routing.SetRoute(shellContent_myStats, "LoginPage");
...
//Logging In
            shellContent_myStats.ContentTemplate = new DataTemplate(typeof(MyStatsPage));
            Routing.SetRoute(shellContent_myStats, "MyStatsPage");
Run Code Online (Sandbox Code Playgroud)

我无法让它发挥作用。无论出于何种原因,只有第一个被执行的部分才会生效。例如,如果我在注销时启动应用程序,它会按预期定向到登录页面,但在我注销后不会切换。反之亦然,如果我在登录时启动应用程序,它会按预期导航到“我的统计”页面,但即使在我注销后也会继续这样做。

我尝试了上述代码的几种不同变体,但均无济于事。


方法2

我尝试的第二种方法是使用 OnClick 事件处理程序在 XAML 中指定菜单项,如下所示:

<MenuItem Text="My Journey" StyleClass="MenuItemLayoutStyle" Clicked="OnMyStatsClicked"/>
Run Code Online (Sandbox Code Playgroud)

背后代码:

public AppShell()
{
    //Route now needs to be registered in page constructor
    Routing.RegisterRoute(nameof(MyStatsPage), typeof(MyStatsPage));
    ...

public async void OnMyStatsClicked(object sender, EventArgs e)
{
    Shell.Current.FlyoutIsPresented = false; …
Run Code Online (Sandbox Code Playgroud)

navigation xaml flyout xamarin.forms xamarin.forms.shell

9
推荐指数
1
解决办法
7997
查看次数

Xamarin.Forms Navigation.PushAsync 作为侧边菜单

我正在使用 Xamarin.Forms 并且我有 2 页,一个是列表视图,另一个是我用作列表视图过滤器的视图。我目前正在使用Navigation.PushAsync显示此页面,我的问题是,是否可以像侧菜单一样显示它?我知道我已经在主菜单中使用了主详细信息视图,我认为我的应用程序中不能有 2 个主详细信息,我尝试了这种方法,但它增加了一个额外的导航。

这是我的代码。

public partial class PatientsPage : ContentPage
    {

        public PatientsPage()
        {
            InitializeComponent();

            ToolbarItems.Add(new ToolbarItem("Filter", "filter.png", () => { openFilter(); }));

        }

        public async void openFilter()
        {
            await Navigation.PushAsync(new PatientFiltersPage());
        }
    }
Run Code Online (Sandbox Code Playgroud)

更新

有没有在 1 个大师中有 2 个细节来完成这个?我真的不想使用第 3 方库。

c# xaml xamarin.forms

7
推荐指数
1
解决办法
395
查看次数

如何修复 GattStatus:3 - BLE Xamarin 表单应用程序的 WriteNotPermitted 异常?

我正在开发 BLE 应用程序。我能够连接到 MI 频段并通过我的 Xamarin 表单 BLE 应用程序获取服务。但是当我尝试编写特性时,我遇到了异常。我得到了例外

特性不支持写入。

为方法WriteAsync()。这是我写入特性的代码:

private async Task<string> ProcessDeviceInformationService(IService deviceInfoService)
    {
        try
        {
           await adapter.ConnectToDeviceAsync(device);
            var sb = new StringBuilder("Getting information from Device Information service: \n");
            var characteristics = await deviceInfoService.GetCharacteristicsAsync();
            var characteristic = await deviceInfoService.GetCharacteristicAsync(Guid.Parse("00002A27-0000-1000-8000-00805F9B34FB"));
           // characteristic.CanWrite = true;
            //foreach (var characteristic in characteristics)
            //{
                try
                {
                   // await Task.Delay(300);
                    var bytes = await characteristic.ReadAsync();
                    var str = Encoding.UTF8.GetString(bytes, 0, 0);
                    ManufacturerLabel.Text = str;
                    //var characteristic = await deviceInfoService.GetCharacteristicAsync(GattCharacteristicIdentifiers.DataExchange);
                    if (characteristic …
Run Code Online (Sandbox Code Playgroud)

c# bluetooth-lowenergy xamarin.forms bluetooth-gatt

7
推荐指数
1
解决办法
199
查看次数

如何在项目中使用Font Awesome图标作为ImageButton的图标

我在实现如何在 Xamarin 应用程序中使用 Font Awesome 图标时遇到问题,我想将其与ImageButton图标一起使用。我发现的大多数教程都无法帮助我理解它是如何工作的。

c# xaml xamarin font-awesome xamarin.forms

7
推荐指数
1
解决办法
7730
查看次数

如何在没有导航页面的情况下更改状态栏颜色

我想更改某些视图上的状态栏颜色。

我找到了这个解决方案https://github.com/yuv4ik/XFDynamicStatusBarAppearance

但它仅适用于 NavigationPage。

我不需要从我的应用程序导航页面...

    public App()
    {
        InitializeComponent();

        MainPage = new MainPage();
    }
Run Code Online (Sandbox Code Playgroud)

这是我的尝试...

    var statusBarStyleManager = DependencyService.Get<IStatusBarStyleManager>();

    MainCarousel.PositionChanged += (sender, e) =>
    {
        switch (e.CurrentPosition)
        {
            case 1:
                Device.BeginInvokeOnMainThread(() =>
                {
                    Xamarin.Forms.Application.Current.MainPage.SetValue(Xamarin.Forms.NavigationPage.BarBackgroundColorProperty, Color.DarkCyan);

                    //((Xamarin.Forms.NavigationPage)Xamarin.Forms.Application.Current.MainPage).BarBackgroundColor = Color.DarkCyan;
                    statusBarStyleManager.SetDarkTheme();
                });
                break;
            case 0:
            case 2:
                Device.BeginInvokeOnMainThread(() =>
                {
                    Xamarin.Forms.Application.Current.MainPage.SetValue(Xamarin.Forms.NavigationPage.BarBackgroundColorProperty, Color.LightGreen);
                    statusBarStyleManager.SetLightTheme();
                });
                break;
            default:
                break;
        }
    };
Run Code Online (Sandbox Code Playgroud)

如何更改状态栏颜色?

c# xamarin.ios xamarin.android xamarin xamarin.forms

5
推荐指数
2
解决办法
4581
查看次数

.NET Core Linux Kestrel https 配置

我们正在 Linux(Ubuntu 18.04 LTS 和 Apache2)上部署我们的第一个 .NET Core 应用程序。

我们不知道部署它们的服务器的证书,也不知道它们将部署的端口,因为它们是客户端的,我们没有访问权限,所以我们需要能够通过 appsettings 中的配置输入它们(红隼配置)。

在 Windows 中,api 在 http 和 https 中都可以正常工作,将此配置放入appsettings.json并在Startup.cs 中读取它,如下所示:

// kestrel configuration
services.Configure<KestrelServerOptions>(Configuration.GetSection("Kestrel"));
Run Code Online (Sandbox Code Playgroud)

我们的windows配置appsettings.json是:

"AllowedHosts": "*.mydomain.es;*.mydomain-eu.com;test-win;test-linux;localhost;127.0.0.1;*.myActiveDirectoryDomain.ad",
"Kestrel": {
"Endpoints": {
  "Http": {
    "Url": "http://localhost:5009"
  }
  ,"Https": {
    "Url": "https://localhost:5010"    
  }
}
}
Run Code Online (Sandbox Code Playgroud)

使用相同配置部署在 Linux 上时,Kestrel 服务不会启动。红隼服务错误:

须藤 systemctl 状态 kestrel-apieu.service ?kestrel-apieu.service - 在 Ubuntu 18.04 上运行的示例 ASP .NET Api 加载:加载(/etc/systemd/system/kestrel-apieu.service;启用;供应商预设:启用)活动:激活(自动重启)(结果: core-dump ) 自 2020-02-06 星期四 …

linux ssl https asp.net-core

5
推荐指数
1
解决办法
4522
查看次数

.net MAUI 背景 vs 背景颜色 - 有什么区别?

使用 Visual Studio Community Edition 2022 构建 .Net MAUI 项目。

我尝试搜索官方文档,但没有找到答案。有人可以解释以下内容吗?

问题:

  1. Background和 和有什么区别BackgroundColor

  2. 如果(Background 或BackgroundColor)都不存在,则该元素是否从其父元素继承背景颜色?

关于如何确定背景颜色的任何其他信息将受到赞赏。

如果官方文档中有回答上述问题的页面,请发布。

.net-maui

5
推荐指数
1
解决办法
4703
查看次数