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 以将该参数作为调用或连接的一部分传递。
然后,可以将客户端 DLL 配置为使用要传递参数的任何技术。我的建议可能是从客户端 DLL 中生成的代理派生一个类,并在客户端代码中使用它。
如果没有具体的实现细节,我就不能更精确了。