所以,EasyNetQ 自动订阅器有一个基本的默认调度器,它不能使用非无参数构造函数创建消息消费者类。
要查看实际效果,请创建一个具有所需依赖项的使用者。您可以设置自己的服务,也可以使用ILogger<T>由框架默认值自动注册的 。
消费文本消息.cs
public class ConsumeTextMessage : IConsume<TextMessage>
{
private readonly ILogger<ConsumeTextMessage> logger;
public ConsumeTextMessage(ILogger<ConsumeTextMessage> logger)
{
this.logger = logger;
}
public void Consume(TextMessage message)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
连接自动订阅器(就在哪里/何时编写/运行此代码而言,这里有一些回旋余地)。
启动文件
public void ConfigureServices(IServiceCollection services)
{
services.AddSingleton<IBus>(RabbitHutch.CreateBus("host=localhost"));
}
Run Code Online (Sandbox Code Playgroud)
(在其他地方,也许startup.Configure或一个BackgroundService)
var subscriber = new AutoSubscriber(bus, "example");
subscriber.Subscribe(Assembly.GetExecutingAssembly());
Run Code Online (Sandbox Code Playgroud)
现在,启动程序并发布一些消息,您应该会看到每条消息都最终出现在默认错误队列中。
System.MissingMethodException: No parameterless constructor defined for this object.
at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean wrapExceptions, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor)
at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean wrapExceptions, Boolean …Run Code Online (Sandbox Code Playgroud) 何时在.NET紧凑框架中分配内存?如果值和参考类型之间存在差异,请详细说明.赞赏文档或确认步骤.
特别要考虑这种情况......
private MyClass item; // here?
public void MyMethod()
{
item = new MyClass(); // or here?
}
Run Code Online (Sandbox Code Playgroud) 我有两个子程序的脚本:一个和乙.如果我定期启动脚本(通过双击其图标),我希望A运行.ahk.如果我按下按钮(例如,按住Ctrl键)的同时启动脚本(双击图标),我希望B运行.ahk.这可能吗?
当我打开任何控制台窗口时,无论是PowerShell还是命令提示符,它始终显示在我左侧监视器的最左侧.这离我的眼睛太远,我希望它在哪里.如果我将它拖到中心exit或关闭窗口并不重要,它总是会重新出现在错误的位置.
有没有办法让它可靠地出现在我离开的地方?
我有一些测试代码执行文化感知转换的规范.我想为我的测试设置一个定义的文化,这样我就可以对预期的值进行硬编码,而不必担心运行测试的系统的配置文化.
有没有一种简单的方法可以使用Machine.Specifications来执行此操作,还是必须设置Thread.CurrentThread.CurrentCulture(也可能CurrentUICulture)?
我正在使用Ant LoadFile任务从存储库根目录中的文件中读取版本.
<loadfile property="build.version" srcFile="VERSION"/>
Run Code Online (Sandbox Code Playgroud)
由于用于创建和编辑它的工具,版本文件以换行符结束.Ant正在阅读并使用该换行符作为属性值的一部分.当我使用该值作为文件或输出的替代品时,这让我感到困扰.
@build.version@ -> 99.0.0.0^M
Run Code Online (Sandbox Code Playgroud)
有没有办法在加载后或作为loadfile任务的一部分将其从属性中删除?
我在谈论这种Chomp.
该VERSION文件实际上只包含版本号和换行符(行号为我的插图).
1. 99.0.0.0
2.
Run Code Online (Sandbox Code Playgroud) 我试图在生产环境中部署Django应用程序,我似乎无法正确渲染CSS.在我当地的环境中它工作正常.在设置中,我已经设置:
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/static/admin/'
Run Code Online (Sandbox Code Playgroud)
在服务器上,我运行collectstatic将文件收集到以下文件夹中:
STATIC_ROOT = '/sites/thetweethereafter.com/public/static'
Run Code Online (Sandbox Code Playgroud)
网络服务器是nginx,我的nginx.conf是:
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name www.thetweethereafter.com;
rewrite ^/(.*) http://thetweethereafter.com/$1 permanent;
}
server {
listen 80;
server_name thetweethereafter.com;
access_log /sites/thetweethereafter.com/logs/access.log;
error_log /sites/thetweethereafter.com/logs/error.log;
location /static {
autoindex on;
root /sites/thetweethereafter.com/public/;
}
location / {
proxy_pass http://127.0.0.1:29000;
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果我直接浏览静态文件,我可以没问题.
http://thetweethereafter.com/static/css/styles.css
但是,当我加载引用其中一个文件的页面时,浏览器不会呈现它们.
我不能为我的生活弄清楚我做错了什么.我有很多其他项目以类似的方式设置,它们工作正常.我错过了什么?
我从一位同事手中接过了一个MVC 3 Razorview项目.我创建了一个忘记密码页面,但是当点击登录页面上忘记密码链接时,网站要求用户登录.我做了一些谷歌搜索并使用该属性实现了白名单操作的解决方案[AllowAnonymous].但是,这并没有解决问题.
单步执行代码,永远不会调用忘记密码操作.它被直接推送到帐户控制器上的LogOn操作.在_ViewStart.cshtml具有下面的代码,即使忘记密码布局不使用它被称为且具有布局在代码中设置.
@{
Layout = Request.IsAuthenticated ? "~/Views/Shared/_Layout.cshtml" : null;
}
Run Code Online (Sandbox Code Playgroud) c# ×2
.net ×1
ant ×1
asp.net ×1
asp.net-core ×1
autohotkey ×1
console ×1
cultureinfo ×1
django ×1
easynetq ×1
ftp ×1
memory ×1
mspec ×1
nginx ×1
powershell ×1
python ×1
windows ×1