我在 WPF 应用程序中使用 .Net Core 3.1 框架。我有一个按钮事件,我试图在点击时重定向到 Instagram 网址。但它给了我以下错误。
抛出异常:System.Diagnostics.Process.dll 中的“System.ComponentModel.Win32Exception”。
private void Insta_Click(object sender, RoutedEventArgs e)
{
try
{
string targetURL = "https://www.instagram.com/xyz/";
Process.Start(targetURL);
}
catch
{
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个简单的方法,可以从列表中计算给定的计算结果。我想为这个方法编写一些测试。
我正在使用 NUnit。我正在使用 TestCaseSource 因为我试图提供一个列表作为参数。我从这个问题得到了解决方案。我的测试如下所示:
[TestFixture]
public class CalcViewModelTests : CalcViewModel
{
private static readonly object[] _data =
{
new object[] { new List<string> { "3", "+", "3" } },
new object[] { new List<string> { "5", "+", "10" } }
};
[Test, TestCaseSource(nameof(_data))]
public void Test(List<string> calculation)
{
var result = SolveCalculation(calculation);
Assert.That(result, Is.EqualTo("6"));
}
}
Run Code Online (Sandbox Code Playgroud)
我想像测试用例一样测试多个计算。
测试用例具有Result 参数。如何将结果添加到 TestCaseSource 以便我可以测试多个计算?
我有一个包含多个项目的 Service Fabric 解决方案。我可以毫无问题地在本地集群上运行除其中一个之外的所有项目,但由于以下问题,一个特定项目将无法部署:
MSB3021无法复制文件“C:\Path\To\Repo\src\MyProject\MyService\obj\Debug\netcoreapp2.1\win7-x64\PubTmp\Out\Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll ”到“C:\Path\To\Repo\src\MyProject\MyService\pkg\Debug\MyServicePkg\Code\Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll”。找不到路径“C:\Path\To\Repo\src\MyProject\MyService\pkg\Debug\MyServicePkg\Code\Microsoft.AspNetCore.Server.Kestrel.Transport.Abstractions.dll”的一部分。
还有另外两个错误报告了Microsoft.Extensions.Configuration.EnvironmentVariables.dll和的相同问题runtimeconfig.json,还有 30 个警告说明了随机 dll 的相同问题。
我已经按照惯例做了好几次了:
bin,obj和pkg目录Code该错误表明它无法找到dir in的部分路径pkg,但我已验证它确实存在。
奇怪的是,这只影响了几个项目中的一个。我在这里遗漏了任何明显的东西吗?
.net visual-studio .net-core azure-service-fabric asp.net-core
我有一个 C# 列表,名为MyList:
List<Tuple<string, int, int>> MyList= new List<Tuple<string, int, int>>()
{
Tuple.Create("Cars", 22, 3),
Tuple.Create("Cars", 28, 5),
Tuple.Create("Planes", 33, 6)
};
Run Code Online (Sandbox Code Playgroud)
我想以与上面填充相同的顺序循环遍历整个列表,并能够一一获取每个列表项的值,例如Cars, 22, 3. 我怎么做?我想我必须以ForEach某种方式使用。
使用 Kotlin 时,可以使用apply设置现有对象的多个属性并保持代码更清晰,例如,而不是:
person.firstName = "John"
person.lastName = "Doe"
person.phone = "123 456 789"
Run Code Online (Sandbox Code Playgroud)
我们可以用:
person.apply {
firstName = "John"
lastName = "Doe"
phone = "123 456 789"
}
Run Code Online (Sandbox Code Playgroud)
是否有与applyC# 中的等效项?
最接近的是,using但据我所知,它不能以这种方式使用。
编辑:我知道C# 中的对象初始值设定项,但实际上我正在寻找可以为现有对象(例如从数据库中获取的对象)完成的操作。
我正在尝试在我的项目中包含 C# 8 的可为空引用类型,并使其与 EF Core 顺利工作。
按照本指南,我使我的实体类具有接受初始化其不可为空属性所需的所有数据的构造函数:
public class MyEntity
{
public MyEntity(int someNumber, string name, string shortName, bool active)
{
SomeNumber= someNumber;
Name = name;
ShortName = shortName;
Active = active;
}
public int SomeNumber { get; set; }
public string Name { get; set; }
public string ShortName { get; set; }
public string? SomethingOptional { get; set; }
public bool Active { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我的业务案例中,我有时需要更新实体的所有属性。我可以使用属性设置器,但由于我想通过将初始化语法加倍来确保不会遗漏任何内容(实际上我的实体可以有 10 个或更多属性),我决定创建一个公共 Update() 函数以方便使用并调用它而不是构造函数体:
public MyEntity(int someId, …Run Code Online (Sandbox Code Playgroud) c# constructor entity-framework-core c#-8.0 nullable-reference-types
我是这个网站的新手,我不知道我是否提供了足够的信息 - 我会尽力=)
如果您使用 Notepad++,那么您就会知道我在说什么 - 当用户将 a 加载.exe到 Notepad++ 中时,NUL/\x0字符会被替换为NULL,它具有黑色背景和白色文本。我尝试将其粘贴到 Visual Studio 中,希望获得相同的输出,但它只是粘贴了一些空格...
有谁知道这是否是某个组合键或其他什么?我想用该NULL字符替换\x0,就像 Notepad++ =)
我写了一段优化的代码,其中包含null和 空字符串的特殊情况。我现在正在尝试为此代码编写单元测试。为了做到这一点,我需要两个不同对象的空(零长度)字符串对象。像这样:
string s1, s2;
Assert.IsTrue(s1.Length == 0 && s2.Length == 0);
Assert.IsTrue(!ReferenceEquals(s1, s2));
Run Code Online (Sandbox Code Playgroud)
事实证明,大多数 .NET Framework API 字符串都在检查空结果。string.Empty在所有这些情况下,他们都会回来。例如,"x".Remove(0, 1)返回string.Empty.
如何创建新的零长度字符串对象?
我知道我们可以声明一个命名元组,如:
var name = (first:"Sponge", last:"Bob");
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚如何将命名元组与泛型类型(例如 Dictionary )结合起来。
我尝试了以下变体,但没有运气:
Dictionary<string, (string, string)> name = new Dictionary<string, (string, string)>();
// this assignment yields this message:
// The tuple element name 'value' is ignored because a different name or no name is specified by the
// target type '(string, string)'.
// The tuple element name 'limitType' is ignored because a different name or no name is specified
// by the target type '(string, string)'.
name["cast"] = (value:"Sponge", limitType:"Bob");
// …Run Code Online (Sandbox Code Playgroud) 我正在测试一个端点。我需要弄清楚如何让我的 loggerMock 测试通过。以下是我目前设置测试的方式:
public void GetExceptionReportSessionData_Returns200OK()
{
//Arrange
var response = new RetrieveExceptionReportSessionDatesResponse
{
RetrieveExceptionReportSessionDatesResult = string.Empty
};
var serviceClient = new Mock<WorkflowService.WorkflowService>();
serviceClient
.Setup(x => x.RetrieveExceptionReportSessionDatesAsync(It.IsAny<RetrieveExceptionReportSessionDatesRequest>()))
.ReturnsAsync(response);
var loggerMock = new Mock<ILogger>();
loggerMock.Setup(x => x.LogInfo(null));
var controller = new ExceptionReportController(loggerMock.Object);
var ctx = new ControllerContext() { HttpContext = new DefaultHttpContext() };
ctx.HttpContext.Request.Headers["token"] = "fake_token_here"; //Set header
controller.ControllerContext = ctx;
//Act
var result = controller.GetExceptionReportSessionData();
//Assert
var viewResult = Assert.IsType<OkObjectResult>(result);
Assert.Equal(StatusCodes.Status200OK, viewResult.StatusCode);
}
Run Code Online (Sandbox Code Playgroud)
以下是返回 200 时记录器在端点中的设置方式:
if (result != null …Run Code Online (Sandbox Code Playgroud) c# ×9
.net ×3
.net-core ×2
asp.net-core ×2
tuples ×2
unit-testing ×2
c#-8.0 ×1
constructor ×1
dictionary ×1
generics ×1
kotlin ×1
list ×1
moq ×1
notepad++ ×1
nunit ×1
process ×1
string ×1
testing ×1
wpf ×1
xunit ×1