问题标签 [late-binding]

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 投票
2 回答
10975 浏览

c# - 如何使用后期绑定访问 Microsoft Word 现有实例

我正在用 c# 开发一些代码,我将在其中与 Microsoft Word 进行交互。我希望能够选择重新使用现有实例或创建新实例作为替代。

请记住,我想使用 LATE BINDING 来完成所有这些工作......可以肯定地说,我已经知道如何在创建新实例时让事情正常工作......我只需调用 Activator.CreateInstance 等......

我遇到的问题是如何重用现有实例,例如,Word 已经打开,我想使用该实例。

是否有 Activator.UseExistingInstance?或类似的东西?

谢谢!

0 投票
2 回答
213 浏览

php - php:在静态方法中获取继承类的名称

好吧,帖子标题可能有点混乱。

我有这个代码:

输出:C

我想在 foo() 中得到的是 B 的类名。我怎样才能在不改变 B 类的情况下做到这一点?

问候,简·奥利弗

PS:__ CLASS __,get_class() 不起作用。

0 投票
4 回答
1786 浏览

vb.net - VB.NET 中的隐式转换

这个问题是为懒惰的 VB 程序员准备的。请。

在 vb 中我可以做到,而且不会出现任何错误。

示例 1

示例 2

示例 3

示例 4

如果我确实知道预期的运行时类型,这是否“禁止”依赖于 vb 语言内置转换?我什么时候可以依靠?

0 投票
6 回答
4876 浏览

service - 为什么我应该更喜欢 OSGi 服务而不是导出的包?

我试图了解 OSGi 服务。我一直问自己的主要问题是:使用服务而不是使用捆绑包及其导出的包有什么好处?

据我所知,后期绑定的概念似乎与它有关。捆绑包依赖项在捆绑包开始时连接在一起,所以我猜它们是相当固定的。但是对于服务,它似乎几乎是一样的。捆绑包启动并注册服务或绑定到服务。当然,服务可以随时来来去去,您必须跟踪这些机会。但核心思想对我来说似乎并没有什么不同。

另一个方面似乎是服务更加灵活。一个特定接口可能有许多实现。另一方面,对于特定的导出包也可以有很多不同的实现。

在另一篇文章中,我读到使用导出包的缺点是它们使应用程序比服务更脆弱。作者写道,如果您从依赖图中删除一个捆绑包,将不再满足其他依赖关系,因此可能会对整个图造成多米诺骨牌效应。但是,如果服务离线,难道不会发生同样的情况吗?在我看来,服务依赖并不比捆绑依赖好。

到目前为止,我找不到一篇博文、书籍或演示文稿可以清楚地描述为什么服务比仅仅通过导出和导入包来公开功能更好。

总结一下我的问题:

使用 OSGi 服务使其优于导出和导入包的主要优势是什么?


添加

我试图收集有关此问题的更多信息,并在包和服务的普通导出/导入之间进行某种比较。也许这会帮助我们找到一个满意的答案。

  1. 开始/停止/更新

    捆绑包(因此是包)和服务都可以启动和停止。除此之外,它们还可以进行更新。服务也与捆绑生命周期本身相关联。但在这种情况下,我只是说您是否可以启动和停止服务或捆绑包(以便导出的包“消失”)。

  2. 跟踪变化

    ServiceTracker 和 BundleTracker 使跟踪和响应捆绑和服务可用性的变化成为可能。

  3. 对其他捆绑包或服务的特定依赖关系。

    如果要使用导出的包,则必须导入它。

    net.jens.helloworld是否会提供服务,我还需要导入包才能获得接口。

    因此,在这两种情况下,它们都会与或多或少特定的包进行某种“紧密耦合”。

  4. 拥有多个实现的能力

    特定包可以通过多个捆绑包导出。可能有一个包net.jens.twitterclient由包 A 和包 B 导出。这同样适用于服务。接口net.jens.twitterclient.TwitterService可以由包 A 和 B 发布。

在这里总结一下简短的比较(导出的包/服务):

  1. 是的是的
  2. 是的是的
  3. 是的是的
  4. 是的是的

所以没有区别。

此外,服务似乎增加了更多复杂性并引入了另一层依赖关系(见下)。

替代文字 http://img688.imageshack.us/img688/4421/bundleservicecomparison.png

那么,如果导出的包和服务之间没有真正的区别,那么使用服务有什么好处呢?

我的解释:

服务的使用似乎更复杂。但服务本身似乎更轻量级。如果您启动/停止整个捆绑包或者您只是启动和停止特定服务,这应该是不同的(在性能和资源方面)。

从架构的角度来看,我也猜想捆绑包可以被视为应用程序的基础。在启动和停止捆绑包方面,基础不应该经常改变。该功能由该包的服务在“捆绑层”之上的某种动态层中提供。这个“服务层”可能会经常发生变化。例如,如果数据库离线,查询数据库的服务将被取消注册。


你怎么看?我是否开始了解服务的全部意义,还是我仍在思考错误的方式?有没有我遗漏的东西会使服务比出口的包更具吸引力?

0 投票
5 回答
1143 浏览

c# - C# - 禁用动态关键字

有什么方法可以禁用 .net 4 中“动态”关键字的使用?

我认为如果使用 dynamic 关键字,VS2010 的代码分析功能可能会导致构建失败,但我无法做到这一点。

0 投票
2 回答
1667 浏览

c# - 参数化属性的 C# 后期绑定

我正在尝试使用后期绑定连接到由名为 Amibroker 的程序提供的 COM 自动化 API,使用 C# WinForms 项目。到目前为止,我已经能够连接到 API 中的所有内容,除了一个项目,我认为这是基于广泛谷歌搜索的“参数化属性”。

根据文档,这是 API 规范的样子(完整版本:http: //www.amibroker.com/guide/objects.html):

用于更新值的 javascript 片段如下所示:

使用以下 C# 后期绑定代码,我可以获得属性的值,但我无法终生弄清楚如何设置该值

到目前为止,我已经尝试过:

  • 使用 BindingFlags.SetProperty、BindingFlags.SetField
  • 将返回的对象转换为 PropertyInfo 对象并尝试使用它更新值
  • 将包含该值的额外对象添加到参数对象
  • 其他各种事情作为最后的努力

据我所知,这应该是直截了当的,但我发现 C# 中的后期绑定充其量是麻烦的。该属性看起来像是对我的方法调用,这让我很失望。如何为方法赋值,后期绑定 C# 代码的原型会是什么样子?

希望这可以很好地解释它,但请随时询问我是否有任何不清楚的地方。提前感谢您的帮助!

丹尼尔

0 投票
1 回答
593 浏览

visual-studio - 有没有办法让 Visual Studio 为经典 ASP 中的后期绑定对象提供智能感知?

我正在处理一个经典 ASP(使用 VB 脚本)项目,我正在从 ActiveX 控件实例化一个对象,如下所示:

Visual Studio 2005 为属性和方法的第一个“层”提供了智能感知,但它似乎看不到作为主要对象成员的属性和方法。例如:

有没有办法以某种方式“帮助”Visual Studio 来查看这些对象类型,以便我可以在更强类型的环境中工作?

0 投票
5 回答
1846 浏览

java - 解释 vs. 编译 vs. 后期绑定

Python被编译成中间字节码(pyc)然后执行。因此,有一个编译,然后是解释。但是,长期使用 Python 的用户说 Python 是一种“后期绑定”语言,不应将其称为解释语言。

  1. Python 与另一种解释语言有何不同?

  2. 你能告诉我在 Python 上下文中“后期绑定”是什么意思吗?

Java 是另一种语言,它首先将源代码编译成字节码,然后再解释成字节码。

  1. Java 是解释/编译语言吗?

  2. 在编译/执行方面它与 Python 有何不同?

  3. 据说Java没有“后期绑定”。这是否与 Java 程序比 Python 快一点有关?

如果您也可以给我链接到人们已经讨论过的地方,那就太好了;我很想阅读更多关于此的内容。谢谢你。

0 投票
2 回答
7698 浏览

c# - 如何动态加载包含非托管代码的原始程序集?(绕过“无法验证的代码未能通过策略检查”异常)

我将给出一个使用System.Data.SQLite.DLL的示例, 它是一个带有非托管代码的混合程序集: 如果我执行这个:

不会抛出异常,但如果我这样做:

CLR 引发 FileLoadException,并显示“无法验证的代码未能通过策略检查。(来自 HRESULT 的异常:0x80131402)”。假设我正在尝试将这个程序集加载到子 AppDomain 上,如何自定义 AppDomain 的安全性以允许我通过策略检查?

0 投票
4 回答
1122 浏览

c++ - 后期绑定问题!

我在一次采访中被问到这个问题。

就我所知,后期绑定是在运行时动态识别符号。如果我错了,请纠正我。

我被问到一个问题,比如当我们在 c++ 中使用后期绑定时会遇到哪些问题。我实际上对此没有自己的想法。

您能否分享一下您在职业生涯中可能遇到的问题。

谢谢。