小编Gol*_*Age的帖子

在asp.net核心中为MediatR库的Send和Publish方法添加通用处理程序

我在我的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 …

c# mediatr asp.net-core

15
推荐指数
2
解决办法
3910
查看次数

使用PowerShell和SSMS生成数据种子脚本

在这里,我找到了手动创建数据种子脚本的解决方案.手动解决方案允许我选择要生成插入的表

我想知道是否有通过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)

但有没有类似的方法来生成数据种子脚本?

有任何想法吗?干杯

sql t-sql powershell ssms

11
推荐指数
1
解决办法
360
查看次数

将描述属性添加到枚举并在TypeScript中阅读此描述

我想知道如何在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)

enums typescript ecmascript-6

9
推荐指数
5
解决办法
4520
查看次数

当外部API调用时,Action不会创建cookie

假设我们的代码如下:

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)

c# asp.net-core-mvc asp.net-core

8
推荐指数
1
解决办法
119
查看次数

HTML输入type =“ file”拖放在Edge和IE11中不起作用

我创建了一个示例 Angular应用,在其中仅input向视图添加了一个控件。在我的项目中,我创建了自己的文件上传器组件。我可以将文件拖放到其中,Chrome但不能在Edge或中执行相同的操作IE11。我读过这篇文章,并且有一张票可以将这些功能添加到Edge。票证被标记为已完成,但是对于我来说,该操作仍然无效,并且根据评论,我不是唯一的人。IE11是另一回事,所以我需要一些适用于两种浏览器的解决方案。

在Angular中是否有解决此问题的明智解决方法?

html file-upload internet-explorer-11 microsoft-edge angular

8
推荐指数
1
解决办法
726
查看次数

asp.net核心中的部分标记帮助程序和HTML帮助程序有什么区别?

partial.net core 2.1中实现的标记助手之间有什么区别:

<partial name="_AuthorPartial" />
Run Code Online (Sandbox Code Playgroud)

@await Html.PartialAsync("_AuthorPartial")
Run Code Online (Sandbox Code Playgroud)

我应该在生产中使用哪一个,有什么好处?

c# razor asp.net-core razor-pages

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

如何在 Azure DevOps 中读取发布管道中工件的目录路径?

我希望能够在发布管道的 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 以某种方式知道工件的正确目录。有任何想法吗?干杯

azure-devops azure-pipelines

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

在Angular2中移动HTML滑块时动态更新变量的值

我在我的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混合使用。有任何想法吗?干杯

ecmascript-6 angular angular6

5
推荐指数
1
解决办法
1403
查看次数

Visual Studio Code 正则表达式包含但不以以下结尾

我想在 VS Code 中构建正则表达式,它返回整个解决方案中包含给定字符串的所有短语(请记住它可以包含特殊字符)并且不以给定字符串结尾,例如\n包含/webhelp但不以以下结尾/

\n\n

火柴:

\n\n
/server/webhelp\n\nblah/webhelp#\n
Run Code Online (Sandbox Code Playgroud)\n\n

\xe2\x80\x99 不匹配

\n\n
/server/webhelp/\n\nserver#webhelp/\n
Run Code Online (Sandbox Code Playgroud)\n\n

我不是正则表达式的专家,我\xe2\x80\x99ve尝试构建类似的东西:

\n\n
(?=/webhelp)(?=.*(?<!/)$)\n
Run Code Online (Sandbox Code Playgroud)\n\n

但它不起作用\xe2\x80\x99。

\n

regex visual-studio-code

5
推荐指数
1
解决办法
4597
查看次数

对包含给定短语的字符串应用过滤器,并返回之后发生的所有内容

我想构建一个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并且正在寻找一些快速而方便的解决方案.

powershell

5
推荐指数
1
解决办法
51
查看次数