小编Daa*_*aan的帖子

我应该如何在.NET Core 1.1或更高版本下使用Mocking和Fakes?

我已经使用.NET Framework 4.X多年了,我刚刚切换到.NET Core.由于我想做TDD,我想使用模拟框架和微软假货.但是,我不清楚如何为.NET Core做到这一点,因为不支持经典解决方案.

有人能告诉我如何在.NET Core 1.1下使用Mocking和Fakes吗?

unit-testing mocking microsoft-fakes asp.net-core

24
推荐指数
1
解决办法
3117
查看次数

如何使主构造函数参数只读?

我正在尝试熟悉 C# 12 主构造函数变量。

这是我的代码:

public class BankAccountNew(string accountID, string owner)
{
    public void DoSomethingWrong()
    {
        accountID = "Wrong";
    }

}

public class BankAccounOld
{
    private readonly string accountID;
    private readonly string owner;

    public BankAccounOld(string accountID, string owner)
    {
        this.accountID = accountID;
        this.owner = owner;
    }

    public void DoSomethingWrong()
    {
        accountID = "Wrong";
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我希望DoSomethingWrong在修改我想要只读的参数时触发编译器错误。我在这方面取得了成功,BankAccounOld但这需要我输入大量代码,而在最新的 C# 版本中不再需要这些代码。

正如所解释的accountID,应该是只读的。如何进行更改BankAccountNew以确保将其识别为只读,从而触发编译器错误?

c#

17
推荐指数
3
解决办法
4066
查看次数

如何将 Markdown 页面附加到 GitHub Actions 工作流程运行摘要?

GitHub Action“dotnet-tests-report”将包含测试结果的 Markdown 页面附加到 Github Action 工作流程运行摘要。这真的很好。工作流程完成后,结果会立即变得清晰。以视觉方式清晰。

它是开源的,但代码很复杂,所以我仍然不知道如何做到这一点。

我想要的是这样的:

  1. 运行一些生成 Markdown 文件的命令行语句
  2. 运行一些“发布”此内容的代码
  3. 将其附加到 Github Actions 中的摘要中
  4. 很高兴我公司的每个人都能看到工作流程附加的结果

GitHub Actions 运行结果截图

github-api github-actions

16
推荐指数
2
解决办法
6115
查看次数

REQUEST_CHECK_SETTINGS的价值是多少?

我是Xamarin开发人员,我研究过这个:https: //developers.google.com/android/reference/com/google/android/gms/location/SettingsApi

我想调用方法"startResolutionForResult",但要做到这一点,我需要知道REQUEST_CHECK_SETTINGS的值.在Xamarin GPS Api中,此方法的第二个参数只是一个整数.

这可能听起来像一个愚蠢的问题,但价值没有记录,并且android文档中只有一个页面引用它:https: //www.google.nl/webhp?sourceid = chrome-instant&ion = 1&espv = 2&ie= UTF-8#q =站点:developers.google.com + REQUEST_CHECK_SETTINGS&滤波器= 0

android xamarin.android xamarin

15
推荐指数
1
解决办法
5986
查看次数

如何从.NET Core调用cygwin编译的C++?

我试图做同样的事情到这个:

我正在使用Windows,但我的目的是让我的代码在Linux上工作得太晚(因此我使用cygwin和clion for C++).VS2017使用普通的C#编译器为.NET Core应用程序编译C#.我的问题是在visual studio中出现此错误:

"该程序'[19944] dotnet.exe'已退出,代码为-1073741819(0xc0000005)'访问冲突'."

这是我的cmake文件(使用clion生成):

cmake_minimum_required(VERSION 3.10) project(callFromCsharp)

set(CMAKE_CXX_STANDARD 14)

add_library(callFromCsharp SHARED library.cpp)
Run Code Online (Sandbox Code Playgroud)

这是我在library.cpp中的C++代码:

#include <cstdint>

extern "C" __declspec(dllexport) int32_t Test(){
    return 10;
}
Run Code Online (Sandbox Code Playgroud)

这是我的clion生成的cmake调用

C:\ Users\Daant.CLion2018.1\system\cygwin_cmake\bin\cmake.exe --build/cygdrive/c/Users/Daant/CLionProjects/callFromCsharp/cmake-build-release --target callFromCsharp - -j 6

这是我的C#代码:

    class Program
    {
        [DllImport("cygcallFromCsharp.dll", EntryPoint = "Test", CallingConvention = CallingConvention.Cdecl, ExactSpelling = true)]
        public static extern Int32 Test();

        [STAThread]
        static void Main()
        {
            var res = Test();
            Console.WriteLine($"Done! {res}");
            Console.ReadLine();
        }
    }
Run Code Online (Sandbox Code Playgroud)

怎么解决这个?我只想调用一个没有错误或异常的C++方法.

c# c++ cygwin cmake .net-core

15
推荐指数
1
解决办法
456
查看次数

如何使用 Visual Studio 和 WSL 2 调试 .NET Core 单元测试?

借助 Visual Studio,我可以调试在 Windows 和 WSL 2 中运行的 .NET Core 应用程序。对于 WSL 2,我使用此扩展。这工作正常。我还可以在 Windows 中调试我的单元测试。这也工作得很好。但是,我不知道如何使用在 WSL 2 中运行的 Visual Studio 来调试我的单元测试。我希望有人可以帮助我并解释我如何不仅可以调试 WSL 2 中的控制台应用程序和 Web 应用程序,还可以调试我的单元测试。请告诉我。

visual-studio .net-core windows-subsystem-for-linux .net-5 wsl-2

14
推荐指数
2
解决办法
3885
查看次数

如何查找 AWS Amplify appId?

我有一个手动部署的可用 AWS Amplify 应用程序。要使用 CLI 指定此应用程序,我需要所谓的appId. 但我在哪里可以找到这个?在控制台中,我可以找到名称和 ,appArn但找不到appId. 应用程序截图

app-id amazon-web-services aws-cli

14
推荐指数
1
解决办法
1万
查看次数

.NET Core 中是否有相当于 DllImport 的 Linux 版本?

我正在开发一个 .NET Core 项目。这应该可以毫无问题地在 Linux 上运行。但是,我需要调用一个用 C++ 创建的库。传统上,C# 开发人员使用DllImport&DllExport来完成此操作。

但是,我不想在生产环境中导入或导出 dll。在那里它需要在 Linux 上运行。Linux 上是否有相当于 DllImport/DllExport 的工具?在Linux上,使用so文件而不是dll文件。当涉及到低级别的事情时,我并不聪明,所以我寻找快速的解决方案和清晰的示例。像“SoImport”之类的东西?

c# c++ linux .net-core

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

在 Azure Devops 中发布到私有 nuget 源时如何指定 API 密钥?

我正在尝试将 NuGet 包发布到我在 Azure Devops 中创建的 NuGet 源。我有做这类事情的经验(我在 NuGet.org 上发布),但由于某种原因我不明白,当我尝试为我的雇主做这件事时它不起作用。

当我单击“连接到源”时,我看到以下解释:

在此输入图像描述

这清楚地显示了在哪里放置我的包路径以及在哪里放置源代码。但是,它没有显示将我生成的 API 密钥放在哪里。

但我尝试了一下并输入(生成包文件后):

dotnet nuget push --source "Test" --api-key az ClassLibrary1.1.0.0.nupkg
Run Code Online (Sandbox Code Playgroud)

这不起作用 (401)

在此输入图像描述

我真的不明白这部分的解释:“API Key(任何字符串都可以)”。为什么可能“任何字符串都可以”。我需要一个有效的 API 密钥...不是“任何字符串”。

之后,我尝试以我有良好经验的方式进行发布(发布 nuget.org 公共 nuget 包时)。在这个声明中,明确指出了来源和密钥。

我是这样做的:

在此输入图像描述

这也是行不通的。我又收到了401。

我的 API 密钥应该可以让我访问(从而防止 401)。这就是我生成 API 密钥的方式:

在此输入图像描述

最有可能的是,我指定 API 密钥的方式有问题,而不是 API 密钥本身有问题。那么如何在命令行语句中正确指定它才能成功发布我的包?

nuget nuget-package azure-devops dotnetcorecli

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

是否有一个很好的C++库来读取,创建和修改BER编码文件?

有几种工具可以自动生成用于读取和编写BER编码文件的C++(或其他)代码.在我的C++项目中,我需要库来读取和修改BER编码文件.我不能基于给定的数据结构生成C++类,因为没有给定的数据结构.用户应该能够添加和删除整数,字符串等.我发现了一个开源项目,它有一个具有这种功能的编辑器:http: //www.codeproject.com/Articles/4910/ASN-1-Editor

但是,这是在C#....

请告诉我,如果您知道如何获得一个具有此功能的好C++库,我可以将其用于我的C++项目.

c++ asn.1 der

8
推荐指数
1
解决办法
1万
查看次数