老实说,我不确定这是否可能,
我想知道是否有一种方法可以删除配置文件的使用,而不必覆盖客户端代理的创建。让我举个例子:
在客户端应用程序中,我们有一个 WCF DAL 项目。这是他们的 WCF 服务器的包装器,供客户端应用程序使用。目前,客户端应用程序需要配置文件中给出的所有绑定和端点,并且通常(在我们的项目中)会执行以下操作来包装 WCF 服务:
public MyObject GetMyObject(int id)
{
using(var service = new MyObjectDataServiceClient())
{
return service.GetMyOBject(id);
}
}
这将创建对服务器的调用并返回一个对象。如果客户端应用程序没有绑定和端点,它就会崩溃。我们可以更改数据服务客户端的每次创建以创建绑定和端点,或者创建我们自己的通道工厂来为我们执行此操作,但这意味着更改当前的 WCF DAL 层代码。
我的目标是尝试创建一种将进程插入 WCF DAL 层的方法,该方法将处理绑定和端点,而无需更改使用代码,同时无需配置文件。
到目前为止,我的想法是尝试使用 TT 文件,以便它创建数据服务客户端的部分类并覆盖通道工厂部分。这失败了,因为数据服务客户端的构造函数调用直接进入抽象类 (System.ServiceModel.ClientBase<T>) 并尝试获取配置内容。我找不到阻止它通过这个部分类在配置中查找并且不更改 WCF DAL 服务层的方法。