.net - 从 .NET DLL 使用 webservice - app.config 问题

标签 .net dll web-services app-config svcutil.exe

我正在构建一个 DLL,我们称之为 mydll.dll,在其中我有时需要调用来自 webservice、myservice 的方法。 mydll.dll 是使用 C# 和 .NET 3.5 构建的。

为了使用 mydll 中的 myservice,我在 Visual Studio 2008 中添加了一项服务,这与使用 svcutil.exe 大致相同。这样做会创建一个我可以创建的类,并将端点和绑定(bind)配置添加到 mydll app.config。

这里的问题是 mydll app.config 永远不会加载。相反,加载的是我使用 mydll 的程序的 app.config 或 web.config。

我希望 mydll 能够发展,这就是为什么我从一开始就将它的功能与系统的其他部分分离。在那个演变过程中,它可能会添加更多它将调用的 Web 服务,从而排除手动复制粘贴方法来克服这个问题。

我研究了几种可能的方法来解决这个问题:

  • 手动将端点和绑定(bind)从 mydell app.config 复制到目标 EXE 或 web .config 文件。
    耦合模块,不灵活
  • 在目标 .config 中包含来自 mydll app.config 的端点和绑定(bind),使用 configSource(参见 here)。
    还添加模块之间的耦合
  • 以编程方式加载 mydll app.config,读取端点和绑定(bind),并实例化 Binding 和 EndpointAddress。
  • 使用不同的工具为 myservice
  • 创建本地前端

    我不确定该走哪条路。选项 3 听起来很有希望,但事实证明它是 很多工作,并且可能会引入几个错误,所以它值得怀疑。除了规范的 svcutil.exe 之外,我也不熟悉任何工具。

    请给出上述替代方案的利弊,提供实现其中任何一个的提示,或提出其他方法。

    谢谢,
    阿萨夫

    最佳答案

    我更喜欢 选项 5 - “在代码配置中”,是的,是的,你失去了改变而不重新编译的好处,但这取决于你需要什么。如果您知道自己永远不会更改端点或很少更改端点 - 只需在代码中进行配置,您将获得编译时检查作为奖励 =) Thisthis能够帮助。

    顺便说一句,客户端配置中的配置是一种常见情况,如果你有很多这样的客户端,这可能会很痛苦,你应该考虑 3 或 5 =)

    关于.net - 从 .NET DLL 使用 webservice - app.config 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2250409/

    相关文章:

    c++ - DllMain 应该命名为另一个名称吗?

    java - 对java注释(即@SecurityDomain)如何工作以及它们的作用感到困惑(它们生成xml吗?wsdl?)

    web-services - 如何使用 SOAP 在 Node.js 中调用 ucf Web 服务

    web-services - 通过 symfony2 休息进行身份验证

    c# - 如何将 XML 数据加载到数据结构中?

    c# - 以谓词为参数的方法

    c# - ToolStripStatusLabel 显示为黑框

    C++插件dll系统

    .net - catch block 中的返回语句

    c# - 将 C DLL 包含到 C# 中时,对 PInvoke 函数的调用使堆栈不平衡