小编Ord*_*nge的帖子

F#字符串连接运算符^的作用是什么

我正在阅读文档并点击了该段落

有两种连接字符串的方法:使用+运算符或使用^运算符。+运算符保持与.NET Framework字符串处理功能的兼容性。

我把它砸进了linqpad,它运行正常,但是我得到了警告

此构造用于ML兼容性。考虑改用'+'运算符

在网上搜索了更多详细信息,但想到了nix。

谁能详细说明^的预期功能?

.net f#

13
推荐指数
1
解决办法
122
查看次数

DevToolsProtocol、Runtime.evaluate 根据工作线程执行上下文

在 chrome devtools 的控制台中,顶部有一个下拉菜单,用于选择执行上下文。

以下是访问www.google.com时的示例

在此输入图像描述

更改执行上下文会更改可用的全局变量以及任何调用 .js 的控制台可以访问的内容

我正在尝试使用 Runtime.evaluate函数通过 ChromeDevtools 协议运行一些 javascript,并且我需要在工作上下文中运行它。

检查CDP 文档,我发现它Runtime.evaluate需要一个参数ExecutionContextId。我最初假设通过 DevTools 窗口下拉菜单的执行上下文与此参数相同。我弄清楚如何获取当前 的列表的唯一方法ExecutionContextId是订阅事件,Runtime.executionContextCreated然后执行 a ,然后执行Runtime.disablea Runtime.enable,这会导致ExecutionContextDiscription事件处理程序为每个加载的上下文接收 an 。

然而,在查看ExecutionContextDescription返回的 后,有些与下拉列表中的匹配,但描述工作线程的执行上下文永远不会返回。

如何通过 CDP 在工作执行上下文中执行 js,就像在 ChromeDevtools 窗口中轻松完成的那样?

javascript chrome-devtools-protocol

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

.NET Core - System.Private.CoreLib.dll 与 System.Runtime

在 .NET Core 应用程序中,如果我这样做

typeof(DateTime).Assembly.Location

我得到

C:\Program Files\dotnet\shared\Microsoft.NETCore.App\3.1.4\System.Private.CoreLib.dll

但是DateTime 结构的文档说程序集是System.Runtime.dll

我正在尝试查找 .xml 文件的 XML 文档文件DateTime。我System.Private.CoreLib.xml在我的系统上找不到 a ,但 aSystem.Runtime.xml确实System.Runtime.dll在其文件夹中随文件一起存在(根据 XML 文档约定)。

如何System.Private.CoreLib.dll涉及到System.Runtime.dll

我正在尝试使用 Roslyn 来获取 XML<Summary>标记内容(类似于 Visual Studio 中的悬停工具提示),但我看不到如何将类型与 XML 文档的位置相关联?

c# xml-documentation roslyn .net-core

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

C# 代码中的 SQL Lead 和 Lag 函数

是否可以使用C# 中的LEADLAGSQL 函数?

我更喜欢的方法是:

  1. Linq 到 SQL
  2. 实体框架
  3. 动态链接
  4. SQLFunctions 类
  5. 通过 SQLCommand 手动 TSQL

我知道可以通过方法 5 完成,但是方法 1 到 4 呢?

c# sql sql-function sql-server-2012

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

为什么F#failwith返回通用类型而不是异常类型

根据文档,failwith函数返回一个Exception 但函数签名为string -> 'a

为什么没有签名string -> Exception

f# exception fsi

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

有界线集合相交的高效算法

我有一组配对数字,需要有效地找到包含给定值的一组数字。

给定以下数字对的表示

public class Line
{
    public double Start { get; set; } //is always < end
    public double End { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

集合Lines可以直观地布局如下(黑线) 在此输入图像描述

垂直的红线是交集标准(只是一个简单的数字,如 10.123)

我正在寻找一种有效的算法,基于搜索执行频率大于向Line集合添加的频率的假设,该算法仅返回与红色相交的黑线。(显然假设集合很大)

到目前为止我的不太理想的解决方案是

  1. 将创建的行插入两个排序列表中。一个按 排序Start,另一个按 排序End
  2. 在起始有序列表上进行二分搜索,查找起始大于交集条件的第一行的索引。(理论上,包括该索引及其之后的所有线都是不相交的)
  3. 对最终有序列表重复 (2) 中类似的逻辑
  4. 比较索引并选择剩余迭代次数最少的列表进行解析
  5. 手动迭代所选列表的其余部分以查找交集

c# algorithm math

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

.NET 的本机 COM (activex) 组件免注册激活

我有一个本机 dll(它是一个 activex 控件),我需要将其与我的 .NET 应用程序一起使用,而无需在注册表中注册该 dll。

我读过几篇关于免费注册激活的深入文章,其中一些更好的是

史蒂夫·怀特和莱斯利·穆勒的长篇文章

这是塞缪尔·杰克的作品

迈克·马卡洛夫的另一个

据我所知这是可能的。然而几个小时和数百次测试后我就是无法让它工作。在我的职业生涯中,我已经完成了一些 PInvoking 工作,甚至更少使用 .NET 中的 ActiveX 控件,因此,对于以前可能在这方面达成目标的任何人提供的任何意见,我将不胜感激。

到目前为止,我遵循 Steves 的建议,构建一个可以工作的应用程序,然后尝试通过重复运行 regsvr32 命令来从注册表中添加和删除非托管 dll 来制定获胜的清单文件语法。只是一个简单的 .Net 控制台应用程序,大约有 10 行代码......

我感到困惑的一部分是互操作。我拥有的本机 dll 还附带托管运行时可调用包装器 (RCW)。在我的 .NET 应用程序中,我添加对这些 RCW 的引用,然后可以使用非托管 dll 提供的相应类和功能。我不是通过 PInvoking dllimport

在创建清单文件时,我不确定是否需要担心这些 RCW 以及它们在免注册场景中如何工作,或者即使它们是否需要出现在编译输出中?

我还尝试了几种工具,例如(OLE/COM 对象查看器、Windows sdk 中的 Mt.exe 和 codeproject 中的 regsvr42)。但不同工具和帖子的清单结构和必要的 GUID 都不同。

当前状态是我收到一条InvalidCastException “无法将 System.__ComObject 类型的 COM 对象转换为 MyFunkyDllLib.FunkyDllControl 接口类型。此操作失败,因为对具有 IID '{some guid}' 的接口的 COM 组件上的 QueryInterface 调用因以下原因失败:出现以下错误:库未注册。

任何人都可以确认应用程序和 dll 清单文件的正确语法吗?网上帖子的名称甚至各不相同,有些在名称中使用了 sxs......

Update1: ​​虽然下面 Joe …

.net c# windows com activex

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