小编gla*_*oon的帖子

如何在VisualStudio中设置泛型类型参数的规则?

下图显示了我在 Visual Studio 2017 中不断收到的警告:

在此输入图像描述

我从某个网站上得到了这个,并且尝试了各种各样的方法。有谁知道我怎样才能摆脱这个?

这是我的 .editorconfig 中与命名相关的部分:

###############################
# Naming Conventions          #
###############################

# Style Definitions
dotnet_naming_style.pascal_case_style.capitalization               = pascal_case

dotnet_naming_style.camel_case_style.capitalization                = camel_case

dotnet_naming_style.I_prefix_style.required_prefix                 = I
dotnet_naming_style.I_prefix_style.capitalization                  = pascal_case

# Use PascalCase for constant fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.severity  = warning
dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols   = constant_fields
dotnet_naming_rule.constant_fields_should_be_pascal_case.style     = pascal_case_style
dotnet_naming_symbols.constant_fields.applicable_kinds             = field
dotnet_naming_symbols.constant_fields.applicable_accessibilities   = *
dotnet_naming_symbols.constant_fields.required_modifiers           = const

# Use PascalCase for public fields
dotnet_naming_rule.pascal_case_for_public_fields.severity          = warning
dotnet_naming_rule.pascal_case_for_public_fields.symbols           = public_fields
dotnet_naming_rule.pascal_case_for_public_fields.style             = pascal_case_style
dotnet_naming_symbols.public_fields.applicable_kinds               = field
dotnet_naming_symbols.public_fields.applicable_accessibilities     = public

# Interfaces must be PascalCase …
Run Code Online (Sandbox Code Playgroud)

editorconfig visual-studio-2017

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

Fluent 验证器检查数据库中是否存在具有 ID 的实体

我正在尝试编写一个自定义验证器,它将使用 OrmLite 检查数据库中是否存在实体。问题是 IRuleBuilder 的类型参数无法再从使用中推断出来。

我必须像这样编写方法调用:

RuleFor(r => r.Id).Exists<DtoName, int, EntityName>()
Run Code Online (Sandbox Code Playgroud)

但我想这样写:

Rulefor(r => r.Id).Exists<EntityName>()
Run Code Online (Sandbox Code Playgroud)

发生这种情况是因为 IRuleBuilder 有两个类型参数,并且该方法是扩展方法。是否有一种聪明、流畅的方法来设计这个并使函数调用最好像第二个版本一样?

这是我的扩展方法和验证器的代码:

    public static class AbstractValidatorExtensions
    {
        public static IRuleBuilderOptions<T, TProperty> Exists<T, TProperty, U>(this IRuleBuilder<T, TProperty> ruleBuilder)
        {
            return ruleBuilder.SetValidator(new EntityExistsValidator<U>());
        }                
    }

    public class EntityExistsValidator<T> : PropertyValidator
    {
        public EntityExistsValidator() : base("Entity does not exist") {}

        protected override bool IsValid(PropertyValidatorContext context)
        {
            return HostContext.Resolve<Repository>()
                .Exists<T>((int)context.PropertyValue);
        }
    }
Run Code Online (Sandbox Code Playgroud)

fluentvalidation servicestack

3
推荐指数
1
解决办法
1万
查看次数

阻止下载出现在 chrome 下载栏上

我正在制作一个 Chrome 扩展程序,我正在使用此代码根据请求“捕获”下载。

chrome.downloads.onCreated.addListener(function(downloadItem) {

});
Run Code Online (Sandbox Code Playgroud)

我想要的是阻止下载出现在下载栏上,读取我扩展中的文件,然后从计算机中删除该文件。

我试过使用 chrome.extensions.download.erase() 和 chrome.browsingData.remove() 但无济于事。

我怎样才能做到这一点?

javascript google-chrome-extension

2
推荐指数
1
解决办法
2046
查看次数

从弹出窗口或选项中指定命令键盘快捷键

Chrome API是否可以让用户从扩展程序弹出窗口或选项页面中分配键盘快捷键?如果不必转到扩展页面,请滚动到底部并打开键盘快捷菜单.

google-chrome-extension

2
推荐指数
1
解决办法
475
查看次数

如何使材质设计菜单(mat-menu)隐藏在mouseleave上

我成功地使菜单出现了mouseenter.我现在要做的是让它mouseleave在菜单本身的事件中消失.有关如何实现这一目标的任何想法?

    <button mat-button [mat-menu-trigger-for]="menu" 
     #menuTrigger="matMenuTrigger" (mouseenter)="menuTrigger.openMenu()">
        TRIGGER BUTTON
    </button>
    <mat-menu #menu="matMenu" [overlapTrigger]="false" 
     (mouseleave)="menuTrigger.closeMenu()">
         <button mat-menu-item [routerLink]="['sources']">
              <mat-icon>view_headline</mat-icon>
              MENU CHOICE
        </button>
    </mat-menu>
Run Code Online (Sandbox Code Playgroud)

angular-material2 angular

2
推荐指数
1
解决办法
8511
查看次数