小编boo*_*oop的帖子

Mediatr 范围问题

我正在使用 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)

有任何想法吗?

dependency-injection lifetime-scoping mediatr asp.net-core

10
推荐指数
1
解决办法
4170
查看次数

将按位比较从C++转换为C#

我是来自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#中添加一个属性

c# bitwise-operators bitwise-and

9
推荐指数
1
解决办法
172
查看次数

CSS转换和z-index

我有一个带下拉菜单的固定顶部导航栏.我想在悬停时滑动下拉菜单.我希望菜单在滑动时位于导航栏后面.所以我只是尝试设置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草图;)

mspaint技能证实

css css3 css-transitions css-animations

9
推荐指数
2
解决办法
4882
查看次数

通过youtube-dl下载时更改视频名称

我想在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或自动编号冲突

此外,下载整个播放列表然后逐个重命名也不是我正在搜索.

是否有任何命令下载播放列表并根据我的意愿并排重命名每个视频?

linux youtube video youtube-dl

8
推荐指数
2
解决办法
2万
查看次数

我应该使用id来定位元素吗?

开始使用Angular和Protractor.

编写一些重要的css选择器会让你感觉不对劲,这些选择器会在你改变某些东西时立即中断.使用ID会使测试更容易.

我还没有使用任何id属性进行样式设置.使用ID进行测试是否有任何缺点我没有考虑过?

selenium end-to-end angularjs protractor e2e-testing

7
推荐指数
1
解决办法
1431
查看次数

如何在 Bash 中抛出错误?

如何在 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)

我知道我只能使用一个函数,但这个例子让我很好奇是否可以做到这一点

bash

7
推荐指数
1
解决办法
2万
查看次数

如何将枚举与标志组合?

我有一个带标志的枚举.我想声明一个带有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.是否有更可读的方式来组合标志?

c# enums

6
推荐指数
1
解决办法
276
查看次数

合并两个提交之间的提交

我想合并两个提交 - 这两个提交之间有提交.提交之间的提交不会更改由提交1和提交6编辑的文件.提交尚未推送.

这可能吗?

f68ffb5 commit 6
...
d294fac commit 1
Run Code Online (Sandbox Code Playgroud)

git git-merge

6
推荐指数
1
解决办法
1304
查看次数

删除本地存储库中的历史记录,而不是使用--depth 1再次克隆它

标题基本上.

我只是混一些事情与我.gitignore和我的臃肿.gitDIR到> 100MB(它与总喜欢100commits回购..).

所以我是一个懒惰的人,并想知道是否有可能删除我的历史.我不想改变某些东西或东西,我只是想缩小我的.git目录尺寸.

当没有办法做到这一点时,我只是让git clone --depth 1我的回购获得同样的效果.

git

6
推荐指数
1
解决办法
512
查看次数

是否可以在输入中包装文本?

不 - 我不想使用textarea.

我想将文本输入样式设置为基本上看起来像textarea.因此,我希望它打破文本而不是水平延伸.

为什么?我想禁止用户输入中的换行符,我想避免实现不允许的javascript,return从粘贴的内容和其他可能的黑客中删除换行符.

html css html5

6
推荐指数
1
解决办法
9070
查看次数