我正在尝试编写用于Asp.Net Core Web API的ModelState验证的单元测试。
我读到,最好的方法是使用TryValidateModel函数。但是,每次我运行单元测试时,它都会引发NullReference异常。
我发现有很多文章暗示了这一点controller.ModelState.AddModelError("",""),但是我对此并不感兴趣,因为我认为这超出了实际模型验证的实际目的。
[TestMethod]
public void TestMethod1()
{
var controller = new TestController();
controller.Post(new Model());
}
public class TestController : Controller
{
public IActionResult Post(Model model)
{
bool b = TryValidateModel(model)
return Ok();
}
}
Run Code Online (Sandbox Code Playgroud)
TryValidateModel(model)总是从TryValidateModel(model, prefix)函数抛出NullReference Exception 。
感谢任何帮助。
我正在玩C#8.0预览,无法开始IAsyncEnumerable工作.
我尝试了以下内容
public static async IAsyncEnumerable<int> Get()
{
for(int i=0; i<10; i++)
{
await Task.Delay(100);
yield return i;
}
}
Run Code Online (Sandbox Code Playgroud)
我最终使用了一个名为Nuget的包AsyncEnumerator,但是我收到以下错误:
IAsyncEnumerable<int>'不包含' '的定义,GetAwaiter并且没有可访问的扩展方法' GetAwaiter' IAsyncEnumerable<int>可以找到类型' ' 的第一个参数(你是否缺少using指令或汇编引用?)Program.Get()' 的主体不能是迭代器块,因为' IAsyncEnumerable<int>'不是迭代器接口类型我在这里错过了什么?
我是SignalR的新手。我正在尝试设置一个Asp.Net Core WebAPI,以便其他客户端可以使用SignalR连接到它并获取实时数据。我的Hub类是:
public class TimeHub : Hub
{
public async Task UpdateTime(string message)
{
await Clients.All.SendAsync("ReceiveMessage", message);
}
}
Run Code Online (Sandbox Code Playgroud)
我有一个中继课程,如下所示:
public class TimeRelay : ITimeRelay
{
private readonly IHubContext<TimeHub> _timeHubContext;
public TimeRelay(IHubContext<TimeHub> context)
{
_timeHubContext = context;
Task.Factory.StartNew(async () =>
{
while (true)
{
await context.Clients.All.SendAsync("UpdateTime", DateTime.Now.ToShortDateString());
Thread.Sleep(2000);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
启动类:
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.AddSignalR();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseDeveloperExceptionPage();
app.UseHttpsRedirection();
app.UseSignalR((x) =>
{
x.MapHub<TimeHub>("/timeHub");
});
app.UseMvc();
}
Run Code Online (Sandbox Code Playgroud)
客户端是一个控制台应用程序,代码为:
class …Run Code Online (Sandbox Code Playgroud) 我正在使用 .net core 3.0 预览版开发 WPF 应用程序。
我xaml在.net core 3.0 preview和中都尝试了以下代码行.net framework。
<Grid>
<Image Source="system-tray.jpg"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)
这在以下情况下工作正常,.Net Framework但在以下情况下不起作用.Net Core 3.0 preview
有什么想法吗!..
我试图在 WPF 中添加全局热键。
var helper = new WindowInteropHelper(this);
var handle = helper.Handle;
var source = HwndSource.FromHwnd(handle);
Run Code Online (Sandbox Code Playgroud)
当我把这段代码在OnInitialized覆盖方法,它返回值0用于handle变量和失败HwndSource.FromHwnd(handle)。
但是,当我把它放在OnSourceInitializedoverride 方法中时,它会为handle变量返回一些随机值并且在HwndSource.FromHwnd(handle).
我试图理解为什么这是这种行为。
WPF 中的 OnInitialized 和 OnSourceInitialized 有什么区别?
我试图了解在以下用例中使用哪个 Http 状态代码
GET输入在端点上执行操作ID。如果服务发回:
404 - Not Found400 - Bad Request200 - OK有null回应200 - OK带有错误消息200 OK(如下所示)。 BaseResponse {
Errors [{
Message: "Data Not Found"
}],
Response: null
}
Run Code Online (Sandbox Code Playgroud)
遵循哪种正确(或标准)方法?
提前致谢。
我有一个场景,我在一个表中有 3 列C1, C2, C3allNVARCHAR和NULLABLE.
我正在使用 SQL Server。
问题在于插入我需要检查的数据中是否至少有 1 列有数据。
例如:
Valid data下面:
| C1 | C2 | C3 |
|---|---|---|
| 空值 | 你好 | 世界 |
| 你好 | 空值 | 空值 |
| 你好 | 亲 | 世界 |
Invalid data 以下:
| C1 | C2 | C3 |
|---|---|---|
| 空值 | 空值 | 空值 |
是否可以在插入操作上添加这样的检查?
c# ×4
.net-core ×2
asp.net-core ×2
wpf ×2
api ×1
c#-8.0 ×1
signalr ×1
sql ×1
sql-server ×1
standards ×1
unit-testing ×1
xaml ×1