我正在使用以下默认项目测试 ASP Net Core 2.2:
Visual Studio > 文件 > 新建 > 项目 > ASP NET Core Web 应用程序 > 下一步 > 创建。按界面上的IIS Express按钮,自动跳转到https://localhost:44356/api/values
编辑:关键是,我正在测试 ASP Net Core,以防有人暴力发送垃圾邮件。
我只修改了这个:
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
return new string[] { "value1", "value2" };
}
Run Code Online (Sandbox Code Playgroud)
编辑:为此,我编辑了我的代码以进行合理的测试,生成最小的可重现示例
// GET api/values
[HttpGet]
public ActionResult<IEnumerable<Post>> Get()
{
// Testing for brute force
return Enumerable.Range(0, 100).Select(x => "Example Value").ToList();
}
Run Code Online (Sandbox Code Playgroud)
起始进程内存为 80 MB。
编辑:原来这个问题从 2 年前就存在了,没有解决方案,还有真实生活示例经验, https://github.com/aspnet/AspNetCore/issues/1976
我很确定黄色箭头表示 GC …
我正在学习C#及其周围的最佳实践。
现在我知道了:
每个人都说避免单例和静态,而更喜欢依赖注入。
现在,我已经转换了所有类,以便它们不必获取自己的数据,例如删除:
_myItem = Repository.Instance.FindById(1);
Run Code Online (Sandbox Code Playgroud)
而是将我的依赖项注入MyClass中。
public MyClass(Repository repository) {
_myItem = repository.FindById(1);
}
Run Code Online (Sandbox Code Playgroud)
但是,既然MyClass遵循单一职责原则,并且从MyClass外部获取所有依赖关系,那么哪个/哪个类将负责提供所有依赖关系?
我在Unity中的示例问题是:
请帮助我理顺这些知识。
考虑以下简单的.js代码:
const createCounter = () => {
let value = 0;
return {
increment: () => { value += 1 },
decrement: () => { value -= 1 },
logValue: () => { console.log(value); }
}
}
Run Code Online (Sandbox Code Playgroud)
//用法
const { increment, decrement, logValue } = createCounter();
Run Code Online (Sandbox Code Playgroud)
我非常确定c#支持一流的功能,请注意,我不想使用类来重新制作上面的代码。什么是C#中的等效闭包?
我做了这个:
public Func<WhatType?> CreateCounter = () => {
var value = 0;
return what?
}
Run Code Online (Sandbox Code Playgroud) 如何从 Linq 获取固定长度的数组?
我已经尝试过这个但它不起作用:
void Main() {
// To Array doesn't accept int argument
// Enumerable.Range(1, 3).ToArray(10);
Enumerable.Range(1, 3).Take(10);
// Result is [1,2,3], I expect [1,2,3,null,null, ..., null] or [1,2,3,0,0, ..., 0]
}
Run Code Online (Sandbox Code Playgroud) c# ×4
.net ×1
arrays ×1
asp.net-core ×1
closures ×1
delegates ×1
function ×1
javascript ×1
linq ×1
memory-leaks ×1
oop ×1