【发布时间】:2022-01-26 19:01:14
【问题描述】:
我正在尝试在干净的架构中实现 CQRS 模式。
我知道如果是 commads/query,那么我需要在 applictionLayer 中添加一个名为 commads/query 的文件夹。
现在我想创建一个 void 方法。不是命令或查询它只是一个无效的方法。我想在我的查询和命令中再次使用它。
public void FormatSomethingHtml(Something something)
{
something.FinePrint = _helper.FormatHtml(something.FinePrint, something.SiteCode.Name);
// removed rest
}
我不知道应该在哪里创建这个方法。
如果我在 commandHandler 中创建此方法,我将无法重用它。 即:
public class UpdateSomethingCommandHandler : IRequestHandler<UpdateSomethingCommand, Something>
{
// removed rest
public void FormatSomethingHtml(Something something)
{
something.FinePrint = _helper.FormatHtml(something.FinePrint, something.SiteCode.Name);
// removed rest
}
}
在上面的方法中,我可以在 UpdateSomethingCommandHandler 中使用。
但我无法在另一个处理程序中重用它。
IE。当我这样打电话时
new UpdateSomethingCommandHandler.FormatSomethingHtml(something);我出错了。
哪里可以创建通用方法?
【问题讨论】:
-
您可以将该类注册为单例(到您的 DI 中),它通过接口公开
FormatSomethingHtml方法。您可以在UpdateSomethingCommandHandler的 ctor 中要求它。
标签: c# asp.net-core cqrs