语境
我想创建我的类的集合,但它的一些字符串属性具有约束值。我希望这些值在约束集中仍然是随机的。
我想出了自定义方式,但我的随机生成实现似乎没有使用任何 AutoFixture 功能,我不想重新发明轮子:
var random = new Random();
var fixture = new Fixture();
fixture.Customize<MyClass>(b => b
.With(i => i.MyProperty, random.Next(2) == 0 ? "O" : "C"));
var result = fixture.CreateMany<MyClass>(1000);
Run Code Online (Sandbox Code Playgroud)
题
有没有更有效的方法来告诉 AutoFixture 我想要一个随机字符串“O”或“C”?
编辑
同时我意识到上面的代码根本不起作用,所以它不符合“备份”计划的条件。(表达式:random.Next(2) == 0 ? "O" : "C" 只计算一次)
我试图用谷歌搜索,但是尽管搜索列表中有很多有希望的项目,但它们全都与ARM vs ASM或Add-AzureRmAccount与Connect-AzureRmAccount有关。
两者都是ARM命令,并且都弹出交互式登录。也许我错过了重点,但我确实找到了区别
我已经阅读了有关配置IHttpContextAccessor为services.AddSingleton范围的内容,但我也阅读了它正在“本地异步”工作,并且我也知道 ASP.Net 中异步的复杂工作,我的意思是例如,如果控制器操作方法是async,并且它await用于async调用,然后它可能会继续另一个线程,但神奇的是一些线程绑定的东西与维护(如HttpContext)
我的具体用例:我必须MyConverter向我的 EF Core注入一个类,该类DbContext在OnModelCreating. 然而,这个模型由 缓存DbContext,所以任何后续请求,即使它会有一个全新的实例,DbContext也会使用这个非常相同的模型,所以非常相同的MyConverter实例。(即使它已经配置services.AddTransient)。它MyConverter有一个构造函数和一个注入IHttpContextAccessor,因此基于非常相似的原因,它实际上也是所有DbContext/MyConverter用法的单例。
题
HttpContextAccessor在第一个请求中创建的这个特定实例将为 Web 应用程序生命周期中的所有后续请求提供服务。它会正常工作吗?这里有任何(并发)陷阱吗?
(我是否正确地认为我们使用单个或多个实例并不重要HttpContextAccessor,因为它的获取实现HttpContext将使用正确的方式,包括异步本地线程切换陷阱等以正确的方式返回HttpContext?)
语境
我在变量$menu和中有两个jQuery查询$current。该查询$menu包括一些DOM元素,它们也在$current查询中。
我想在除$menu元素之外的所有元素上执行某些操作$current。
样本伪代码:
($menu - $current).toggleClass('open');
Run Code Online (Sandbox Code Playgroud)
题
有可能在jQuery中吗?
语境
我想对仅包含一项的列表与包含多项的列表进行不同的样式设计。目前我想要有list-style-type:none;一个不同的padding-left列表,其中只有一项。
问题
我确实知道如何编写 javascript 代码,通过操作 DOM 来实现此目标,但我想问是否可以使用纯 CSS?
这个标题太长了,但这是一个更孤立的问题:
为什么 ASP.NET Core Web 应用程序在从命令行启动时不提供静态 Web 资源并且ASPNETCORE_ENVIRONMENT未设置 或设置为除 之外的任何其他值"Development"?
语境
我使用 VS 2022 内置模板(.NET 6,但我不认为该问题/疑问是 .NET 5 特定的)创建了一个新的 ASP.NET Core Web 应用程序,我没有以任何方式更改创建的应用程序
我能够在 IIS Express 下运行我的 ASP.NET Core Web 应用程序,或者使用 Visual Studio在没有launchsettings.json.IIS Express 的情况下运行我的 ASP.NET Core Web 应用程序,基于,我的意思是使用绿色三角形下拉列表,然后选择 WebApplication 而不是 IIS Express
只是出于好奇,我尝试从 bin 文件夹启动 WebApplication1.exe。它开始,我可以使用 https://localhost:5001/ 通过浏览器访问它,页面加载,但没有 CSS、JS。我可以看到所有对静态资源的请求都有404响应。
我怀疑我应该以某种方式配置静态网络资源所在的应用程序。我看到相应的WebApplication1.runtimeconfig.json和WebApplication1.staticwebassets.runtime.json(以前的WebApplication1.staticwebassets.xml)在那里......但后来我发现神奇的ASPNETCORE_ENVIRONMENT是环境与该问题有关。
到目前为止我已经尝试过什么?
在命令 shell 中,我将环境变量设置为
SET ASPNETCORE_ENVIRONMENT=Development
Run Code Online (Sandbox Code Playgroud)
...然后开始,然后我启动了 WebApplication.exe,这种情况下一切正常,静态 Web 资源已提供服务。
问题
在非常简单的 …
我想对每个选定的元素调用一个函数:
$('any valid selector').existingFunction({ p1:<myAttributeValueForTheCurrentElement> });
Run Code Online (Sandbox Code Playgroud)
我试过了:
$('any valid selector').existingFunction({ p1: this.attr('myAttributeValueForTheCurrentElement') });
Run Code Online (Sandbox Code Playgroud)
但显然这是指 HTMLDocument,因为我收到错误消息:“Object # has no method 'attr'”
我正在尝试的是这样的:
let getFiles path = (directoryInfo path).GetFiles().ToList
Run Code Online (Sandbox Code Playgroud)
但这给了我一个FileInfos列表而不是字符串列表.如何将其投影到字符串列表?
Thx提前
我有一个属性类型很长的属性(Int64).
如果它是一个int,那么我可以将支持字段声明为:
private volatile int _myInt;
Run Code Online (Sandbox Code Playgroud)
并创建一个简单的get和set访问器.
但是,即使使用x64项目设置,C#编译器也不允许使用类型为long的volatile关键字.所以情况是,即使我们确定读/写操作在这个变量上都是原子的,不幸的是,读取变量的线程有可能获得并使用旧的方式(处理器或CLR/JIT优化器)缓存值...
问题1:这是否意味着我不必简单地在get访问器中读取此值,而是使用Interlocked来防止读取缓存值?
get
{
return Interlocked.CompareExchange(ref _myLong, 0, 0);
}
Run Code Online (Sandbox Code Playgroud)
这意味着一个相当开销......
问题2:仍然假设有保证的64位架构,在集合访问器中是否足够简单,如:
set
{
_myLong = value;
}
Run Code Online (Sandbox Code Playgroud)
提前致谢
请参阅问题演示:完整问题演示和沙箱
我想在一个<div>元素中使用Bootstrap 3网格系统.此<div>元素是一个Kendo数据网格工具栏,它是一个整页宽度<div>元素.我不认为解决方案是Kendo特定的或需要Kendo技能,所以请继续阅读.
不幸的是,Kendo CSS在这个<div>元素上应用了一些样式,它以某种方式欺骗了bootstrap 3网格系统宽度计算.因此,如果我尝试在此<div>元素中使用col 12单位,它总是分解为2行.例如col-6和col-6断裂.col-6和col-4适合一排.
我无法弄清楚导致问题的原因,以及如何防止它.

asp.net-core ×2
c# ×2
css ×2
jquery ×2
.net ×1
autofixture ×1
azure ×1
f# ×1
html ×1
httpcontext ×1
javascript ×1
kendo-ui ×1
unit-testing ×1