之前有人问过这个问题,但我的情况略有不同。
我有一个 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 时。
谁能帮我这个?