我在我的asp.net核心项目中使用CQS模式.让我们从一个例子开始,以更好地解释我想要实现的目标.我创建了一个命令:
public class EmptyCommand : INotification{}
Run Code Online (Sandbox Code Playgroud)
命令处理程序:
public class EmptyCommandHandler : INotificationHandler<EmptyCommand>
{
public Task Handle(EmptyCommand notification, CancellationToken cancellationToken)
{
return Task.FromResult(string.Empty);
}
}
Run Code Online (Sandbox Code Playgroud)
查询:
public class EmptyQuery : IRequest<string>{}
Run Code Online (Sandbox Code Playgroud)
查询处理程序:
public class EmptyQueryHandler : IRequestHandler<EmptyQuery, string>
{
public Task<string> Handle(EmptyQuery notification, CancellationToken cancellationToken)
{
return Task.FromResult(string.Empty);
}
}
Run Code Online (Sandbox Code Playgroud)
这是一个简单的例子,说明如何从EmptyCommandHandler和EmptyQueryHandler运行命令和查询并调用Handle方法:
readonly IMediator _mediator;
public HomeController(IMediator mediator)
{
_mediator = mediator;
}
public async Task<IActionResult> Index()
{
await _mediator.Publish(new EmptyCommand());
var queryResult = await _mediator.Send(new EmptyQuery());
return View();
}
Run Code Online (Sandbox Code Playgroud)
请记住,查询可以返回其他类型,不一定是string …
在这里,我找到了手动创建数据种子脚本的解决方案.手动解决方案允许我选择要生成插入的表
我想知道是否有通过PowerShell运行相同进程的选项?
到目前为止,我已经设法创建了一个创建数据库模式播种器的SQL脚本:
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
$s = new-object ('Microsoft.SqlServer.Management.Smo.Server') "(localdb)\mssqlLocalDb"
$dbs=$s.Databases
#$dbs["HdaRoot"].Script()
$dbs["HdaRoot"].Script() | Out-File C:\sql-seeding\HdaRoot.sql
#Generate script for all tables
foreach ($tables in $dbs["HdaRoot"].Tables)
{
$tables.Script() + "`r GO `r " | out-File C:\sql-seeding\HdaRoot.sql -Append
}
Run Code Online (Sandbox Code Playgroud)
但有没有类似的方法来生成数据种子脚本?
有任何想法吗?干杯
我想知道如何在TypeScript中向枚举添加描述属性。我想创建如下的枚举(或类似的东西):
public enum Sample
{
[Display(Name = "Blah V")]
V,
[Display(Name = " Blah IV")]
IV,
[Display(Name = " Blah III")]
III,
}
Run Code Online (Sandbox Code Playgroud)
为了能够对此类枚举执行基本操作,我将创建通用的EnumHelper。该帮助器类应包含允许使用的方法:获取描述值,获取名称和数字值。问题是如何在打字稿中实现这一点?如果无法向枚举添加属性,有什么办法吗?我希望能够:
- get number of enum value,
- get description value,
- get the name of enum field.
Run Code Online (Sandbox Code Playgroud)
例如对于Sample.IV它将是:
1,
Blah IV,
IV.
Run Code Online (Sandbox Code Playgroud) 假设我们的代码如下:
public class HomeController : Controller
{
[HttpPost]
public IActionResult AdvanceTokenCallback(string apiToken)
{
Response.Cookies.Append("Token", apiToken, new Microsoft.AspNetCore.Http.CookieOptions()
{
Path = "/",
Expires = _tokenCookieExpirationTime
});
return RedirectToAction(nameof(CreateWorkItem));
}
[HttpGet]
public IActionResult CreateWorkItem()
{
string token = Request.Cookies["Token"];
return View();
}
}
Run Code Online (Sandbox Code Playgroud)
AdvanceTokenCallback从外部API调用操作时,操作中的token变量CreateWorkItem变为a null.但是,在我创建"桥接"操作并移动在那里创建cookie的逻辑的情况下,token位于CreateWorkItem中的位置包含一个我期望的值.
public class HomeController : Controller
{
[HttpPost]
public IActionResult AdvanceTokenCallback(string apiToken)
{
return RedirectToAction(nameof(BridgeRedirect), new { apiToken });
}
[HttpGet]
public IActionResult BridgeRedirect(string apiToken)
{
Response.Cookies.Append("Token", apiToken, new Microsoft.AspNetCore.Http.CookieOptions() …Run Code Online (Sandbox Code Playgroud) 我创建了一个示例 Angular应用,在其中仅input向视图添加了一个控件。在我的项目中,我创建了自己的文件上传器组件。我可以将文件拖放到其中,Chrome但不能在Edge或中执行相同的操作IE11。我读过这篇文章,并且有一张票可以将这些功能添加到Edge。票证被标记为已完成,但是对于我来说,该操作仍然无效,并且根据评论,我不是唯一的人。IE11是另一回事,所以我需要一些适用于两种浏览器的解决方案。
在Angular中是否有解决此问题的明智解决方法?
html file-upload internet-explorer-11 microsoft-edge angular
partial.net core 2.1中实现的标记助手之间有什么区别:
<partial name="_AuthorPartial" />
Run Code Online (Sandbox Code Playgroud)
和
@await Html.PartialAsync("_AuthorPartial")
Run Code Online (Sandbox Code Playgroud)
我应该在生产中使用哪一个,有什么好处?
我希望能够在发布管道的 PowerShell 任务中显示工件的目录路径。在构建管道中,Artifact 的目录由变量描述$(System.DefaultWorkingDirectory),如果我尝试使用命令在 PowerShell 任务中显示它
Write-Host $(System.DefaultWorkingDirectory)
Run Code Online (Sandbox Code Playgroud)
在控制台输出中,它显示了路径C:\agent\_work\3\a。这个变量在发布管道中不存在,当我运行命令时
Get-ChildItem Env:
Run Code Online (Sandbox Code Playgroud)
在 powerhsell 任务中,在发布管道中,我可以看到所有环境变量,但没有一个变量存储C:\agent\_work\3\a path
我如何获取它,因为在执行工件下载过程时,AgentJob 以某种方式知道工件的正确目录。有任何想法吗?干杯
我在我的angular6应用程序中使用html圆形滑块:https ://www.w3schools.com/howto/howto_js_rangeslider.asp
.html文件中的实现如下所示:
<span style="font-size: 130px;">{{sliderVal}}</span>
<input type="range" #slider min="1" max="10" value="1" class="slider" (change)="onPriceSliderChange(slider.value)">
Run Code Online (Sandbox Code Playgroud)
.ts文件的实现:
import { Component } from '@angular/core';
@Component({
selector: 'app-sample,
templateUrl: './sample.component.html',
styleUrls: ['./sample.component.scss']
})
export class SampleComponent {
public sliderVal = 1;
constructor() { }
onPriceSliderChange(val) {
this.sliderVal = val;
}
}
Run Code Online (Sandbox Code Playgroud)
仅当移动滑块并且我不按下鼠标左键时,sliderVal值才会更改。我想每次移动滑块时都动态地更新sliderVal的值,而不仅是在取消按下鼠标按钮时。我知道如何使用jQuery实现此目的,但我不想将jQuery解决方案与Angular混合使用。有任何想法吗?干杯
我想在 VS Code 中构建正则表达式,它返回整个解决方案中包含给定字符串的所有短语(请记住它可以包含特殊字符)并且不以给定字符串结尾,例如\n包含/webhelp但不以以下结尾/
火柴:
\n\n/server/webhelp\n\nblah/webhelp#\nRun Code Online (Sandbox Code Playgroud)\n\n\xe2\x80\x99 不匹配
\n\n/server/webhelp/\n\nserver#webhelp/\nRun Code Online (Sandbox Code Playgroud)\n\n我不是正则表达式的专家,我\xe2\x80\x99ve尝试构建类似的东西:
\n\n(?=/webhelp)(?=.*(?<!/)$)\nRun Code Online (Sandbox Code Playgroud)\n\n但它不起作用\xe2\x80\x99。
\n我想构建一个PowerShell脚本,它返回在给定字符串出现后发生的所有事情.我想针对单个字符串而不是集合运行命令.
例如,我想在"_blah_"之后返回所有内容
_blah_v2.3
_blah_bar_blah_v56
_blah_v42
foo
Run Code Online (Sandbox Code Playgroud)
结果:
v2.3
bar_blah_v56
v42
Run Code Online (Sandbox Code Playgroud)
可能Regex对于这样的操作来说太重了,所以寻找一些替代解决方案我试过这个:
$Foo = "blah_v1.1"
$FooVersion = ($Foo -split '_blah_', 2)[1]
Write-Host $Foo
Write-Host $FooVersion
Run Code Online (Sandbox Code Playgroud)
但它只适用于单个字符而不是字符串.我不熟悉PowerShell并且正在寻找一些快速而方便的解决方案.
asp.net-core ×3
c# ×3
angular ×2
ecmascript-6 ×2
powershell ×2
angular6 ×1
azure-devops ×1
enums ×1
file-upload ×1
html ×1
mediatr ×1
razor ×1
razor-pages ×1
regex ×1
sql ×1
ssms ×1
t-sql ×1
typescript ×1