0

之前有人问过这个问题,但我的情况略有不同。

我有一个 Excel 加载项,我们分发给我们的用户,现在需要连接到下游系统。该下游系统为我提供了一个 WCF Web 服务来执行此操作,因此我设计了一个 C# DLL 包装器,我可以通过 COM 公开它与 WCF Web 服务通信并通过 COM 接口将结果返回给 Excel。

我现在让 Excel 与 COM 包装器正常通信,但由于我还没有理解 Excel 和 .NET 运行时版本的原因,我不得不为 DLL 恢复到 Framework 3.5。问题是,当我在 C# DLL 中调用 COM 公开的方法时,我收到一个错误返回,说“找不到默认端点...”

这个错误似乎是因为服务配置没有被拾取,显然是因为我没有 app.config 因为这纯粹是一个独立的 DLL。我可以确定我可以将配置放入 Excel.exe.config 中,但这不是一个选项,因为不允许更改用户 Excel 配置。而且我无法将值硬编码到 C# 代码中,因为我们需要使用外部配置文件配置不同的环境。

基本上我需要有一个配置文件,我可以使用我的 DLL 和 excel 插件分发它,这样当 excel 调用我的 COM 公开的 C# DLL 时,它也会获取配置文件并从那里加载 WCF 端点配置。我知道如何使用 ConfigurationManager 读取配置文件,但我不知道如何让 .NET 知道该配置文件包含 WCF 服务的端点信息。到目前为止,我发现的唯一解决方案涉及覆盖默认的应用程序域配置加载,以便 .NET 为 app.config 默认设置加载您手动指定的文件,但我为此在线找到的所有解决方案都使用 .NET 4.5 对象和代码,当我仅限于 .NET 3.5 时。

谁能帮我这个?

4

1 回答 1

0

您应该考虑在代码中而不是在配置文件中配置您的 WCF 客户端端点。欲了解更多详情,请参阅:

http://msdn.microsoft.com/en-us/library/ff647110.aspx

于 2013-05-22T11:29:17.780 回答