我正在构建一个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能够发展壮大,这就是为什么一开始就将其功能与我的系统其他部分解耦的原因。在这个过程中,它可能会添加更多的WebService以进行调用,排除手动复制粘贴的方式来解决这个问题。
我已经考虑了几种可能的方法来解决这个问题:
为了从mydll中使用myservice,我已经在Visual Studio 2008中添加了一个服务(类似于使用svcutil.exe)。这样做会创建一个可以创建的类,并将端点和绑定配置添加到mydll app.config中。
问题在于mydll app.config从未被加载。相反,加载的是我在其中使用mydll的程序的app.config或web.config。
我希望mydll能够发展壮大,这就是为什么一开始就将其功能与我的系统其他部分解耦的原因。在这个过程中,它可能会添加更多的WebService以进行调用,排除手动复制粘贴的方式来解决这个问题。
我已经考虑了几种可能的方法来解决这个问题:
- 手动从mydell app.config复制端点和绑定到目标EXE或Web.config文件中。
耦合模块,不灵活 - 在目标.config中包含mydll app.config中的端点和绑定,使用configSource(参见这里)。
也会增加模块之间的耦合 - 编程方式加载mydll app.config,读取端点和绑定,并实例化Binding和EndpointAddress。
- 使用不同的工具为myservice创建本地前端
我不确定该走哪条路。第三个选项听起来很有前途,但事实证明这是一项很大的工作,并且可能会引入几个漏洞,所以它不太值得。除了传统的svcutil.exe之外,我也不熟悉任何其他工具。
请为上述替代方案提供优缺点,提供实施任何其中一个的技巧,或者建议其他方法。
谢谢,
Asaf