我已经写了一个公开大量方法的WCF服务,它们中的每一个基本都是数据库查询。然而,有多个数据库,所以现在每个方法都有第一个参数是数据库的名称。.NET WCF存储没有持久化或干净实现的会话数据
在客户端,一个会话只使用一个数据库,所以我不想在每次调用服务时都传递数据库的名称。理想情况下,我想先将数据库名称发送给服务,然后将其存储在内存中以备将来查询。问题是我的客户端是用传统的ASP编写的,因此我使用的是basicHttpBinding,因此服务器上的调用没有持久性。
我现在的问题是,是否有另一种方法,如果不是,我将如何实现这很好,所以我没有每个方法签名中的数据库名称。
我当然可以使用类似的命令模式,并为每次调用创建包含neccessary数据(包括使用继承数据库名)的对象,但这样会导致大量的类(服务器和上在客户端)。另一个选择是使用一个字典,但然后我的服务器方法没有指定它的参数,这使得难以维护。我想过使用反射,但这似乎有点矫枉过正...
有什么建议吗?