小编ste*_*r42的帖子

为什么我可以声明一个与父作用域中的变量同名的子变量?

我最近写了一些代码,我无意中将一个变量名重用作为一个动作的参数,该动作在一个已经具有同名变量的函数中声明。例如:

var x = 1;
Action<int> myAction = (x) => { Console.WriteLine(x); };
Run Code Online (Sandbox Code Playgroud)

当我发现重复时,我惊讶地发现代码编译并完美运行,根据我对 C# 中作用域的了解,这不是我所期望的行为。一些快速的谷歌搜索出现了抱怨类似代码确实会产生错误的SO 问题,例如Lambda Scope Clarification。(我将该示例代码粘贴到我的 IDE 中以查看它是否可以运行,只是为了确保它可以完美运行。)此外,当我在 Visual Studio 中进入“重命名”对话框时,第一个x被突出显示为名称冲突。

为什么这段代码有效?我在 Visual Studio 2019 中使用 C# 8。

c# lambda scope variable-names c#-8.0

26
推荐指数
1
解决办法
1231
查看次数

在 webpack 中使用 file-loader 和 html-loader 时,图像的 src attr 是 '[object Module]'

我正在从头开始使用 webpack4 做一个项目。但是当我尝试在 HTML 文件中显示图像时,我遇到了一个奇怪的问题:在 之后npm run build,图像标签的 src 被构建为<image src="[object Module]". HTML 部分是:

<img src="images/main_background.jpg">

webpack.config.js是:

   // ignore ...
   {
    test: /\.html$/,
    use: [
       {loader: 'html-loader'}
    ]
   },
   {
      test: /\.(jpeg|jpg|png)$/,
      use: [
        'file-loader'
      ]
  }


Run Code Online (Sandbox Code Playgroud)

以及这两个加载器的版本:

"file-loader": "^5.0.2",
"html-loader": "^0.5.5",
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚是什么问题...

webpack webpack-html-loader webpack-file-loader

16
推荐指数
1
解决办法
4799
查看次数

Chrome 扩展 .pem 文件的用途是什么?

当我创建我的第一个 Google Chrome 扩展程序时,我按照迷宫般的指令找到了 T 并成功启动了一个扩展程序。我还成为了一个神秘的 .pem 文件的新所有者,我被警告要把它放在一个安全的地方,永远不会丢失。我认真地将文件放在一个安全的地方,并可能在我使用它时进行了多次备份。几个月过去了,虽然我推出了更多扩展并进行了很多更新,但我没有一次回顾过 .pem 文件。这个我一生都在守护的文件是什么——如果我决定清除一些杂物并删除它,它真的会如此糟糕吗?

我试图进一步调查这个文件是什么,但对于一些据称如此重要的事情,那里的信息很少。文档仅说明:

不要丢失私钥!将 .pem 文件保存在一个秘密和安全的地方;需要更新扩展。

这个说法绝对是不真实的,因为我已经做了很多更新,几乎没有看一眼 .pem。我也在SO 上发现了这个问题,但提供的唯一信息是它需要:

更新扩展

再次,不真实,并且:

将之前打包的扩展程序上传到 Chrome 网上应用店(确保文件名为 key.pem

老实说,我不确定指的是什么情况。

我还设法收集到该文件与证书和签名有关,我对这个主题知之甚少。

有人可以向我全面解释 .pem 到底是什么以及为什么,根据我遇到的一切,我必须如此仔细地跟踪它吗?

ssl pem google-chrome-extension google-chrome-app

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

ASP.Net MVC 动作过滤器:OnActionExecuting 和 OnResultExecuting 在用法上有什么区别

我正在寻找OnActionExecuting和之间的比较OnResultExecuting

什么时候应该使用OnActionExecuting,什么时候使用OnResultExecuting

asp.net-mvc action-filter

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

更改单个 ASP.NET Core 控制器的 JSON 反序列化/序列化策略

我有一个用于第三方 API 的控制器,它使用蛇形命名约定。我的控制器的其余部分用于我自己的应用程序,该应用程序使用驼峰式 JSON 约定。我想自动反序列化和序列化我的模型从/到蛇案例为该控制器中的API。这个问题解释了如何在整个应用程序中使用 JSON 的蛇形命名策略,但是有没有一种方法可以指定仅对单个控制器使用命名策略?

我见过更改单个 ASP.NET Core 控制器的 JSON 序列化设置,它建议使用 ActionFilter,但这仅有助于确保传出的 JSON 正确序列化。如何将传入的 JSON 正确反序列化到我的模型?我知道我可以[JsonPropertyName]在模型属性名称上使用,但我更希望能够在控制器级别而不是模型级别设置某些内容。

c# json asp.net-core

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

从 .net core 3.0 迁移到 3.1 导致缺少 System.Data.SqlClient 程序集错误

我有一个引用 .net 框架库的 .net core 项目。框架库用于System.Data.SqlClient访问数据库。当核心项目在 dotnet core 3.0 上运行时,一切正常。但是,我刚刚迁移到 3.1,现在遇到以下异常:

FileNotFoundException: Could not load file or assembly 'System.Data.SqlClient, Version=4.6.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)

我尝试System.Data.SqlClient在框架库中通过 Nuget 显式安装 v.4.6.0,但仍然遇到相同的异常。

asp.net-core asp.net-core-3.1

4
推荐指数
1
解决办法
4603
查看次数

剧作家“元素未附加到 DOM”

我正在尝试使用 Playwright (.NET) 抓取一个网站。该网站看起来像是在 2000 年代初编写的(以怪异模式等运行),而我遇到了一个我似乎无法找到解决方案的问题。

我的目标是选中一个复选框。我可以input使用选择元素

var input = await page.QuerySelectorAsync("inputSelector")
Run Code Online (Sandbox Code Playgroud)

该元素已成功选择,但在尝试运行时await input.CheckAsync(),出现错误Element is not attached to the DOM。我没有注意到会导致这种情况的元素有任何异常。为什么会发生此错误?

更新

await page.ClickAsync("inputSelector")我通过运行来检查该框来使其工作。这适用于我的目的,但它不能解释为什么如果以其他方式完成它会出错,所以我仍然想知道为什么会发生该错误。

c# webautomation playwright playwright-sharp playwright-dotnet

4
推荐指数
1
解决办法
7775
查看次数

以编程方式关闭反应选择菜单

React-select 默认行为是在输入值为空时弹出菜单。我想修改此行为,以便当输入为空时,无论是在用户输入任何内容之前还是用户退格进入空状态之前,菜单都将关闭。

我找不到任何支持这种行为的道具,所以我想通过调用一些关闭onInputChange. 就像是:

onInputChange={(inputValue) => {
      this.setState({
        inputValue,
      });
      this.selectRef.closeMenu();
    }}
Run Code Online (Sandbox Code Playgroud)

我尝试blur()Selectref上使用,但它只是在不关闭菜单的情况下模糊了输入,绝对不是我正在寻找的行为。

是否有暴露的道具或功能可以满足我的需求?

reactjs react-select

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