0

老实说,我不确定这是否可能,

我想知道是否有一种方法可以删除配置文件的使用,而不必覆盖客户端代理的创建。让我举个例子:

在客户端应用程序中,我们有一个 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 服务层的方法。

4

1 回答 1

1

如果您在 DAL 上有绑定和端点,则可以使用客户端类的不同构造函数(采用绑定 + 端点地址的构造函数)。该构造函数完全绕过配置,因此您不需要在配置中包含任何内容。

于 2011-06-30T21:17:27.587 回答