我正在使用 Mediatr 处理来自队列的消息。我可以得到一个简单的例子来工作。但是,当我尝试将对象注入我的处理程序时遇到了问题
public class MessageCommandHandler : IRequestHandler<MessageCommand, bool>
{
private IMyDependency myDependency;
public MessageCommandHandler(IMyDependency myDependency)
{
this.myDependency = myDependency;
}
public Task<bool> Handle(MessageCommand request, CancellationToken cancellationToken)
{
return Task.FromResult(true);
}
}
Run Code Online (Sandbox Code Playgroud)
这仅在我将 IMyDependency 注册为临时作用域时才有效,但是当我将其注册为作用域生命周期时,它会失败并显示错误
Cannot resolve 'MediatR.IRequestHandler`2[MyNamespace.MessageCommand,System.Boolean]' from root provider because it requires scoped service 'MyNamespace.IMyDependency'
Run Code Online (Sandbox Code Playgroud)
我需要能够注入具有范围生命周期的依赖项。有没有人对此有解决方案。
我正在使用 .NET Core 依赖注入框架。设置如下
services.AddHostedService<QueueConsumer>();
services.AddScoped<IMyDependency, MyDependency>();
services.AddMediatR(new Assembly[] { Assembly.GetExecutingAssembly() });
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我是来自cpp源的给定条件.
if (!(faces & activeFace) || [...]) { ... }
Run Code Online (Sandbox Code Playgroud)
我想把它翻译成C#.
当我理解这一点时,这意味着if activeFace is *not* in faces then...- 不是吗?
那么C#中的等价物是什么?
注意:我不能使用faces.HasFlag(activeFace)
那应该是
if ((faces & activeFace) == 0 || [...]) { ... }
Run Code Online (Sandbox Code Playgroud)
我对吗?
为了完整性,这里是实际的标志枚举
[Flags]
enum Face {
North = 1,
East = 2,
South = 4,
West = 8,
Top = 16,
Bottom = 32
};
Run Code Online (Sandbox Code Playgroud)
那么它在cpp中是一样的,你只需要[Flags]在C#中添加一个属性
我有一个带下拉菜单的固定顶部导航栏.我想在悬停时滑动下拉菜单.我希望菜单在滑动时位于导航栏后面.所以我只是尝试设置z-index两个元素,但遗憾的是这对我不起作用.
这是一个简化的例子(codepen)
HTML
<div class="fixed-top">
<span class="trigger">hover me</span>
<div class="menu"></div>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS
.fixed-top {
background: #3b5999;
height: 50px;
width: 100%;
padding: 0;
top: 0;
position: fixed;
z-index: 2;
}
.trigger {
z-index: 2;
font-size: 33px;
color: white;
margin-left: 50%;
}
.trigger:hover + .menu {
margin-top: 0;
}
.menu {
z-index: 1;
height: 300px;
background-color: #1c7754;
width: 400px;
margin: auto;
margin-top: -400px;
transition: all 0.75s ease-out;
}
Run Code Online (Sandbox Code Playgroud)
如果我不清楚我想在这里做一个简单的mspaint草图;)
我想在youtube上下载一个完整的播放列表,同时下载我想在视频标题前面下载时输入序列号,
例如:如果播放列表有视频:A.mp4,E.mp4,K.mp4,C.mp4,B.mp4,我希望它为 - > 1. A.mp4,2.E.mp4,3. K.mp4,4.C.mp4,5.B.mp4.
我尝试过如下命令:
i = 0; youtube-dl -cti https://www.youtube.com/playlist?list= {(Any Playlist)} -o"{{$ i ++}%(title)s.%( ext)s}"但它的给出错误:youtube-dl:错误:使用输出模板与使用标题,视频ID或自动编号冲突
此外,下载整个播放列表然后逐个重命名也不是我正在搜索.
是否有任何命令下载播放列表并根据我的意愿并排重命名每个视频?
开始使用Angular和Protractor.
编写一些重要的css选择器会让你感觉不对劲,这些选择器会在你改变某些东西时立即中断.使用ID会使测试更容易.
我还没有使用任何id属性进行样式设置.使用ID进行测试是否有任何缺点我没有考虑过?
如何在 bash 中抛出错误以进入我的catch子句(我不确定这个表达式实际上叫什么)
{
# ...
if [ "$status" -ne "200" ]
# throw error
fi
} || {
# on error / where I want to get if status != 200
}
Run Code Online (Sandbox Code Playgroud)
我知道我只能使用一个函数,但这个例子让我很好奇是否可以做到这一点
我有一个带标志的枚举.我想声明一个带有n不同标志的变量.n > 1在这种情况下.
public enum BiomeType {
Warm = 1,
Hot = 2,
Cold = 4,
Intermediate = 8,
Dry = 16,
Moist = 32,
Wet = 64,
}
Run Code Online (Sandbox Code Playgroud)
好的 - 一个变体是将每个标志转换为一个字节并将结果转换为我的枚举.
BiomeType bType = (BiomeType)((byte)BiomeType.Hot + (byte)BiomeType.Dry)
Run Code Online (Sandbox Code Playgroud)
但这有点混乱 - imho.是否有更可读的方式来组合标志?
我想合并两个提交 - 这两个提交之间有提交.提交之间的提交不会更改由提交1和提交6编辑的文件.提交尚未推送.
这可能吗?
f68ffb5 commit 6
...
d294fac commit 1
Run Code Online (Sandbox Code Playgroud) 标题基本上.
我只是混一些事情与我.gitignore和我的臃肿.gitDIR到> 100MB(它与总喜欢100commits回购..).
所以我是一个懒惰的人,并想知道是否有可能删除我的历史.我不想改变某些东西或东西,我只是想缩小我的.git目录尺寸.
当没有办法做到这一点时,我只是让git clone --depth 1我的回购获得同样的效果.
不 - 我不想使用textarea.
我想将文本输入样式设置为基本上看起来像textarea.因此,我希望它打破文本而不是水平延伸.
为什么?我想禁止用户输入中的换行符,我想避免实现不允许的javascript,return从粘贴的内容和其他可能的黑客中删除换行符.
c# ×2
css ×2
git ×2
angularjs ×1
asp.net-core ×1
bash ×1
bitwise-and ×1
css3 ×1
e2e-testing ×1
end-to-end ×1
enums ×1
git-merge ×1
html ×1
html5 ×1
linux ×1
mediatr ×1
protractor ×1
selenium ×1
video ×1
youtube ×1
youtube-dl ×1