问题标签 [probing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
746 浏览

.net - .net 中的探测组件

我知道如何CLR探测装配,但我想知道:CLR探测装配是否在GAC文件夹中?

0 投票
1 回答
1389 浏览

c#-4.0 - 设置 AssemblyName.CodeBase 是否会强制在 LoadFrom 上下文中加载程序集?

设置 AssemblyName.CodeBase 是否会强制在 LoadFrom 上下文中加载程序集?

我正在研究一种插件系统。我需要能够使用 Type.GetType 等...在我的代码中的任何地方,我都不必知道 Type 是否来自插件 dll。

我的插件位于我的应用程序(windows/web)的 bin 目录下的 Plugins 文件夹中,每个插件都在它自己的文件夹中。

我将探测路径设置为 Plugins(或 bin;bin\Plugins for web),即使它没有任何区别,因为它们位于子文件夹中。

我像这样加载我的插件

注意:PluginInfo 只是一个保持我的插件状态的类。

我想知道,因为我设置了程序集名称 Assembly.Load 的 CodeBase 属性,即使它不在探测路径中也能够找到我的程序集,这是否意味着程序集在默认上下文中加载或从上下文中加载?

再次为入口程序集引发 AssemblyResolve 事件是否正常?

0 投票
1 回答
61 浏览

caching - AppFabric 中的探测

我是 Windows Server AppFabric 缓存的新手。我已将其配置为 XML 模式,并在其上尝试了基本的示例程序。我现在正在尝试开发自己的缓存。是否可以在 AppFabric 中使用任何探测技术(线性、二次、散列等)。另外,如果是,是否建议使用它?

0 投票
3 回答
14873 浏览

data-structures - 二次探测优于线性探测

对于给定的哈希值,线性探测生成的索引如下:

h, h+1, h+2,h+3等..

对于给定的哈希值,二次探测生成的索引如下:

h, h+1, h+4,h+9等..

在线性的情况下会形成簇,但在二次的情况下不会。

但是,当两个过程(方法)都需要采取相同数量的插入或搜索步骤时,为什么二次比线性更有效。谢谢!

0 投票
0 回答
209 浏览

asp.net-mvc-4 - 从 razor 视图页面访问 bin 以外的目录中的程序集

我有一个简单的 ASP.NET MVC 4 项目。我想从项目根目录中的“lib”文件夹而不是“bin”文件夹加载程序集。

我添加<probing privatePath="lib" />到我的 web.config 中。我custom.dll在“lib”文件夹中。现在我可以在我的类中编写using custom.namespace并且它工作正常,但我无法在剃刀视图页面中添加这个命名空间。

换句话说@using custom.namespace,在我看来是行不通的。如果我将上面的 dll 放在“bin”文件夹(不是“lib”文件夹)中,我可以在视图页面中使用它。

当我在 web.config 中使用探测时,如何在剃刀视图页面中加载程序集?

0 投票
1 回答
429 浏览

c# - 探测路径 - 如何强制呼叫保留在目录结构中


更新 - 下面的原始问题

我做了一些额外的测试,现在我相信我的问题的根源是 .NET 如何定位程序集。

正如我在下面提到的,子目录中有 .dll 文件,但我在下面提到的 .dll 文件并不是每个目录中唯一的 .dll 文件。例如,在 \translation\Customer 目录中有一个 Customer.dll 文件和几个标准文件(Translation.dll、Mapping.dll、Execute.dll)。在 \translation\Standard 目录中有一个 Standard.dll,然后是其他标准文件(Translation.dll、Mapping.dll、Execute.dll)。这些文件都是生成的代码(来自不同的项目),这就是为什么每个目录都有标准文件的副本以及与子目录直接相关的文件的原因。

当在我的 Windows 服务应用程序中执行 Customer.dll 文件中的方法时,标准程序集(Translation.dll、Mapping.dll 等)中的其他方法也将被调用。我相信对其他 .dll 文件的调用不会在同一目录中的 .dll 上执行。

例如,我调用 /translation/Customer/Customer.dll 上的方法,然后调用 Translation.dll 上的方法。但是,应用程序不是在 /translation/Customer/Translation.dll 上调用方法,而是首先找到 /translation/Standard/Translation.dll 并在该文件上调用该方法。

是否可以强制 .NET 在同一目录中调用这些关联的 .dll 文件?或者我是否必须做一些事情来使每个目录中唯一命名的“标准”程序集?


原始问题:

我有一个 C# Windows 服务应用程序,它监视一个目录并处理传入的文件。每个被处理的文件都有一组针对该文件运行的可配置任务。每个任务的代码都包含在一个外部 .dll 中,该 .dll 在运行时使用反射动态加载。<probing>外部 .dll 存在于主应用程序文件夹的多个子目录中,并且通过app.config 文件中应用程序元素中的条目授予对它们的访问权限。

我最近扩展了子目录的数量以更好地组织外部 .dll,并且我遇到了该<probing>元素的一些意想不到的功能。我正在运行测试来处理需要对文件执行 2 个任务的文件。第一个任务存在于文件 Customer.dll 中,位于名为“\translation\Customer”的子文件夹中。第二个任务存在文件 Standard.dll,位于名为“\translation\Standard”的子文件夹中。

如果我的探测元素看起来像这样<probing privatePath="translation\Customer;translation\Standard">,第二个任务(在“标准”文件夹中的 .dll 上运行方法)将无法执行。

但是,如果我切换这些条目以使探测元素看起来像这样,则<probing privatePath="translation\Standard;translation\Customer">两个任务都会成功执行。

谁能帮我理解为什么探测元素中子目录的顺序会对这些子目录中包含的 .dll 的执行产生影响?

0 投票
1 回答
980 浏览

c# - 探测在调试文件夹中工作但无处可去

这是我的App.config

我引用的 DLL 设置为不复制到本地,并且我已将 DLL 复制到调试文件夹中的 lib 目录,它运行良好,但是当我将程序与库文件夹一起移动时,它不起作用。

当程序和库目录到不同的文件夹时,有没有办法让它工作?

0 投票
1 回答
115 浏览

algorithm - 为什么这个哈希表查找探测会像现在这样呢?

此代码(从未知来源的 LZW 压缩程序中提取)在大小为 5021 的哈希表中找到一个空槽,索引从 0 到 5020:

这不是典型的线性或二次探测。为什么要这样探?这是一种已知的探测算法吗?我在哪里可以找到更多关于它的信息?

0 投票
1 回答
237 浏览

c# - 反射创建时的装配路径(C#)

我有一个奇怪的情况,即通过反射创建时使用了错误的程序集。

这是我的设置(简化):

项目1:类库

项目2:客户端应用程序

  • Project2 通过从特定路径 (C:\Project1) 反射创建 Project1.dll
  • Project2 还引用了 Project1.dll 以获得不同的功能。此引用复制 C:\Project2\bin\Debug 中的 Project1.dll。

相关反射代码为:
Assembly assembly = Assembly.LoadFrom(path);

问题:当我通过反射调用 Project1 时,即使我指定了 C:\Project1 路径,它实际上也使用了 bin\Debug 副本(不一定是正确的版本)。

问题:如何确保使用我提供的路径而不是首先找到的任何版本?

我理想的解决方案是将 Project1 一分为二,一个用于反射,一个用于参考,但在我的情况下这不是一个选项(它是,但它有额外的复杂性)。

谢谢你,
西蒙

0 投票
1 回答
1603 浏览

java - 如何将随机整数插入哈希表?

我现在正在学习的数据结构和算法课程是对算法如何工作的大量纸笔理解,但很少有实际编码。我是一个编程菜鸟,所以这对你们中的一些人来说可能是一个愚蠢的问题。

从概念上讲,我理解散列,以及不同方法的原因,但对如何编写这个分配感到迷茫。

基本上我们可以使用我们想要的任何源代码。书中的代码是http://users.cis.fiu.edu/~weiss/dsaajava3/code/SeparateChainingHashTable.javahttp://users.cis.fiu.edu/~weiss/dsaajava3/code/QuadraticProbingHashTable。爪哇

使用这些代码中的任何一个时,我似乎都无法将键插入表中。我正在使用这个块插入:

这似乎实际上并没有向表中插入任何内容,但是,尽管插入量很大,但大小保持不变。另外,我不知道如何确定需要多少探针。