小编And*_*kin的帖子

如果我们等待ASP.NET Core中的长异步操作会有什么问题?

考虑这两种控制器方法:

public async Task DoAsync() {
    await TaskThatRunsFor10MinutesAsync().ConfigureAwait(false);
}

public void DoWithTaskRunAndReturnEarly() {
    Task.Run(() => TaskThatRunsFor10MinutesAsync());
}
Run Code Online (Sandbox Code Playgroud)

让我们说在客户端我们不关心响应.我们可能会等待它完成,我们可能会因为用户刷新页面而放弃它 - 但是DoWithTaskRunAndReturnEarly之前返回并不重要.

这两种方法之间是否存在重要的服务器端差异,例如可靠性,超时等?ASP.NET Core是否会在超时时中止线程?

c# async-await asp.net-core

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

WPF:如何在ComboBox中自定义SelectionBoxItem

我想在ComboBox中显示一个自定义模板/项目作为选定项目(该项目实际上不存在于项目列表中,并且更新方式不同).这甚至不需要是一个项目,只需提供自定义视图即可.

如何在保持当前ComboBox主题的同时执行此操作(因此无法替换ControlTemplate)?据我所知,所有SelectionBox*属性都不可编辑,内部ComboBox使用未命名的ContentPresenter.

wpf customization templates combobox

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

如何默认svn:关键字启用?

有没有办法默认启用svn:keywords,这样每次添加新的源文件时都不需要为每个关键字启用此属性?

svn automatic-properties version-control-keywords

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

PowerShell中的数字后缀的完整列表是什么?

您可以在PowerShell数字文字上使用的完整后缀列表是什么?
到目前为止,我发现:

?????????????????????????????????????????????
? Suffix ? Example ?         Result         ?
?????????????????????????????????????????????
?   L    ?   1L    ? Type = Int64           ?
?   D    ?   1D    ? Type = Decimal         ?
?   KB   ?   1KB   ? 1KB = 1024             ?
?   MB   ?   1MB   ? 1MB = 1048576          ?
?   GB   ?   1GB   ? 1GB = 1073741824       ?
?   TB   ?   1TB   ? 1TB = 1099511627776    ?
?   PB   ?   1PB   ? 1PB = 1125899906842624 ?
?????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)

但我找不到列出所有这些内容的来源.

powershell number-literal

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

LINQ to Entities搜索多个关键字的文本属性

对于我正在做的网站,我们正在使用LINQ to Entities.我被指控为网站添加搜索功能.我试图找出在数据库中的单个字段上搜索多个关键字(用户输入)的最优雅方式.请允许我举个例子.

表列:

Name, Description
Run Code Online (Sandbox Code Playgroud)

示例行:

"Cookie monster", "Fluffy, likes cookies and blue"
Run Code Online (Sandbox Code Playgroud)

用户搜索(分隔符无关紧要):

"blue fluffy" 
Run Code Online (Sandbox Code Playgroud)

目前我正在使用以下内容:

    public List<SesameCharacters> SearchByKeywords(string keywords)
    {
        List<SesameCharacters> output = new List<SesameCharacters>();
        string[] k = keywords.ToLower().Split(' ');
        using (SesameStreet_Entities entities = new SesameStreet_Entities())
        {
            IQueryable<SesameCharacters> filter = entities.SesameCharacters;

            foreach (string keyword in k)
                filter = ForceFilter(filter, keyword);

            output = filter.ToList();
        }
        return output;
    }

    private IQueryable<SesameCharacters> ForceFilter(IQueryable<SesameCharacters> filter, string keyword)
    {
        return filter.Where(p => p.Description.ToLower().Contains(keyword));
    }
Run Code Online (Sandbox Code Playgroud)

这目前按预期工作,但我认为这不是问题的最佳解决方案.我错过了一些明显的东西吗?

注意:这是AND匹配的.

c# search linq-to-entities

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

以下规则设计的其他解决方案是什么?

我想基本上为某些类对象创建一个简单的验证系统

public interface IMyClassRule {
    bool IsValid(MyClass obj, Context someAdditionalData)
}
Run Code Online (Sandbox Code Playgroud)

使用DI框架自动发现规则列表,而不是事先修复.

假设我有一个VeryGeneralDefaultRuleAboutAllObjects : IMyClassRuleSpecificCaseWhenGeneralRuleDoesNotApply : IMyClassRule.如何以通用方式处理此解决方案(在某些情况下基本上允许通过任何其他规则覆盖任何规则)?

解决方案我考虑过

  1. 规则或规则结果的数字优先级

    专业:易于理解和实施.
    反对:我需要知道/猜测原规则的优先级.不明显哪个优先(1或1000)?对于不适用特定情况的情况,需要一些"不关心"规则结果.

  2. 基于类型的优先级(基本.Before<VeryGeneralRule>)

    :具体说明你想要实现的目标.
    Contra:需要明确引用原始规则.订购逻辑将很复杂.对于不适用特定情况的情况,需要一些"不关心"规则结果.

还有其他/更好的选择吗?

c# rules

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

NHibernate与ASP.NET中的Autofac(MVC):ITransaction

在Web应用程序中使用Autofac管理NHibernate事务的最佳方法是什么?

我的会话方法是

builder.Register(c => c.Resolve<ISessionFactory>().OpenSession())
       .ContainerScoped();
Run Code Online (Sandbox Code Playgroud)

因为ITransaction,我在Google Code上找到了一个示例,但它HttpContext.Current.Error在决定是否回滚时依赖于它.

有更好的解决方案吗?NHibernate事务应该具有什么范围?

nhibernate asp.net-mvc transactions autofac

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

Powershell:Args/params没有填充

我有一个PowerShell脚本:

param (
    [Parameter(Mandatory=$true)][string]$input,
    [Parameter(Mandatory=$true)][string]$table
)

Write-Host "Args:" $Args.Length
Get-Content $input |
    % { [Regex]::Replace($_, ",(?!NULL)([^,]*[^\d,]+[^,]*)", ",'`$1'") } |
    % { [Regex]::Replace($_, ".+", "INSERT INTO $table VALUES (`$1)") }
Run Code Online (Sandbox Code Playgroud)

Write-Host part用于调试.
我运行它.\csvtosql.ps1 mycsv.csv dbo.MyTable(来自powershell shell),然后得到

Args: 0
Get-Content : Cannot bind argument to parameter 'Path' because it is an empty s
tring.
At C:\temp\csvtosql.ps1:7 char:12
+ Get-Content <<<<  $input |
    + CategoryInfo          : InvalidData: (:) [Get-Content], ParameterBinding
   ValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorEmptyStringNotAl
   lowed,Microsoft.PowerShell.Commands.GetContentCommand
Run Code Online (Sandbox Code Playgroud)

对于我传递的任何参数,我得到完全相同的错误,如果我尝试使用命名参数,也会出现相同的错误.

什么可能导致参数不被传入?

更新 …

powershell

6
推荐指数
2
解决办法
3494
查看次数

::在MDN之前/ ::之后+ flexbox

我在MDN CSS主页上看到以下新闻:

Gecko对灵活盒子的支持已经过调整,以符合最近的规范澄清:从Firefox 23开始::before,::after将是flex项目,因此可以使用order和重新定位align-self.
(2013年5月3日)

它指的是什么规格?
我在CSS Flexible Box Layout Module中找不到任何对::before/的引用.::after

css

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

从一个 PowerShell 脚本运行另一个脚本而不继承变量和范围

通常在 PowerShell 中这是有效的:

# parent.ps1

$x = 1
&"$PSScriptRoot/child.ps1"
Run Code Online (Sandbox Code Playgroud)
# child.ps1

Write-Host $x
Run Code Online (Sandbox Code Playgroud)

运行时parent.ps1,它会打印出1sincechild.ps1已经继承了它。

我可以在我的脚本中阻止这种情况吗?

我可以这样做$private:x = 1,但是父级有很多变量,所以它很冗长并且容易出错。

有没有一种方法可以child.ps1在不继承范围的情况下调用?或者也许是一种将父级中的所有内容
标记为私有的方法?

powershell

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