我已经使用.NET Framework 4.X多年了,我刚刚切换到.NET Core.由于我想做TDD,我想使用模拟框架和微软假货.但是,我不清楚如何为.NET Core做到这一点,因为不支持经典解决方案.
有人能告诉我如何在.NET Core 1.1下使用Mocking和Fakes吗?
我正在尝试熟悉 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
以确保将其识别为只读,从而触发编译器错误?
GitHub Action“dotnet-tests-report”将包含测试结果的 Markdown 页面附加到 Github Action 工作流程运行摘要。这真的很好。工作流程完成后,结果会立即变得清晰。以视觉方式清晰。
它是开源的,但代码很复杂,所以我仍然不知道如何做到这一点。
我想要的是这样的:
我是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
我试图做同样的事情到这个:
我正在使用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++方法.
借助 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
我有一个手动部署的可用 AWS Amplify 应用程序。要使用 CLI 指定此应用程序,我需要所谓的appId
. 但我在哪里可以找到这个?在控制台中,我可以找到名称和 ,appArn
但找不到appId
.
我正在开发一个 .NET Core 项目。这应该可以毫无问题地在 Linux 上运行。但是,我需要调用一个用 C++ 创建的库。传统上,C# 开发人员使用DllImport&DllExport来完成此操作。
但是,我不想在生产环境中导入或导出 dll。在那里它需要在 Linux 上运行。Linux 上是否有相当于 DllImport/DllExport 的工具?在Linux上,使用so文件而不是dll文件。当涉及到低级别的事情时,我并不聪明,所以我寻找快速的解决方案和清晰的示例。像“SoImport”之类的东西?
我正在尝试将 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 密钥本身有问题。那么如何在命令行语句中正确指定它才能成功发布我的包?
有几种工具可以自动生成用于读取和编写BER编码文件的C++(或其他)代码.在我的C++项目中,我需要库来读取和修改BER编码文件.我不能基于给定的数据结构生成C++类,因为没有给定的数据结构.用户应该能够添加和删除整数,字符串等.我发现了一个开源项目,它有一个具有这种功能的编辑器:http: //www.codeproject.com/Articles/4910/ASN-1-Editor
但是,这是在C#....
请告诉我,如果您知道如何获得一个具有此功能的好C++库,我可以将其用于我的C++项目.
.net-core ×3
c# ×3
c++ ×3
.net-5 ×1
android ×1
app-id ×1
asn.1 ×1
asp.net-core ×1
aws-cli ×1
azure-devops ×1
cmake ×1
cygwin ×1
der ×1
github-api ×1
linux ×1
mocking ×1
nuget ×1
unit-testing ×1
windows-subsystem-for-linux ×1
wsl-2 ×1
xamarin ×1