Web 服务和客户端 DLL

本文关键字:DLL 客户端 服务 Web | 更新日期: 2023-09-27 17:57:25

我有一个Web服务和一个客户端DLL。Web 服务使用 Oracle 数据库。

为了测试客户端 DLL,我复制了 Web 服务并将其指向测试数据库。然后,我复制了客户端 DLL 并使用"添加 Web 引用"添加了此测试 Web 服务。

我想做的是使用一个 Web 服务和一个客户端 DLL,但能够告诉客户端 DLL 使用测试或生产数据库,而不是两个相同的 Web 服务和客户端 DLL。

编辑

我错误地陈述了这个问题。我需要做的是使用一个客户端 DLL 和两个 Web 服务(一个生产版本,一个开发/测试版本),并且能够以某种方式告诉客户端 DLL 要使用哪些 Web 服务。下面是如何使用 Web 服务、客户端 DLL 和客户端应用的示例:

public class DSSService : System.Web.Services.WebService
{
    public DSSService()
    {
    }
    [WebMethod(MessageName = "GetFacility", BufferResponse=true, Description = "blah.")]
    public Facility GetFacility(string sFDBID, string sZip, string sFinNo)
    {
        Facility oFacility = ...;
        ...
        return oFacility;
    }
    ....
}

客户端 DLL:

namespace DSSConfig
{
    string sWSURL;
    public class Config
    {
        public Config()
        {
        }
        public void SetWSURL(string sURL)
        {
            sWSURL = sURL;
        }
        public Facility GetFacility(string sFDBID, string sZip, string sFinNo)
        {
            DSSService Proxy = new DSSService();
            proxy.Url = sWSURL;
            Facility oFacility = Proxy.GetFacility(sFDBID, sZip, sFinNo);
            return  oFacility;
        }

在客户端应用程序中,将 DSSConfig DLL 作为引用:

DSSConfig oConfig = new DSSConfig();
oConfig.SetWSURL("http://myserver/WebService1/service.asmx");
oConfig.GetFacility("blah", "blah", "blah");

Web 服务和客户端 DLL

您需要

做的是更改 WEB 服务以采用一个参数,它将使用该参数构造数据库的连接字符串。

然后更改客户端 DLL 以将该参数作为调用或连接的一部分传递。

然后,可以将客户端 DLL 配置为使用要传递参数的任何技术。我的建议可能是从客户端 DLL 中生成的代理派生一个类,并在客户端代码中使用它。

如果没有具体的实现细节,我就不能更精确了。