我正在构建一个 DLL,我们称它为mydll.dll,在其中我有时需要从 webservice myservice调用方法。mydll.dll是使用 C# 和 .NET 3.5 构建的。
为了使用mydll中的myservice,我在 Visual Studio 2008 中添加了一项服务,这与使用svcutil.exe或多或少相同。这样做会创建一个我可以创建的类,并将端点和绑定配置添加到mydll app.config。
这里的问题是mydll app.config 永远不会加载。相反,加载的是我使用mydll的程序的 app.config 或 web.config 。
我希望mydll能够发展,这就是为什么我从一开始就将它的功能与系统的其他部分分离。在那个演变过程中,它可能会添加更多它将调用的 Web 服务,从而排除手动复制粘贴方法来克服这个问题。
我研究了几种可能的方法来解决这个问题:
- 手动将端点和绑定从mydell app.config 复制到目标 EXE 或 web .config 文件。
耦合模块,不灵活 - 使用 configSource(参见此处) 在目标 .config 中包含来自mydll app.config 的端点和绑定。还要增加模块之间的耦合
- 以编程方式加载mydll app.config,读取端点和绑定,并实例化 Binding 和 EndpointAddress。
- 使用不同的工具为myservice创建本地前端
我不确定该走哪条路。选项 3 听起来很有希望,但事实证明它需要做很多工作并且可能会引入一些错误,所以它值得怀疑。除了规范的 svcutil.exe 之外,我也不熟悉任何工具。
请给出上述替代方案的利弊,提供实施其中任何一个的提示,或提出其他方法。
谢谢,
阿萨夫