【发布时间】:2014-02-20 05:14:56
【问题描述】:
这可能是一个基本问题,因为我是 WCF 新手。我什至不知道这是否支持。
我有一个名为 MyCustomService 的 WCF 服务。我在我的客户端解决方案中添加了这个服务引用,现在我可以通过调用来创建一个代理对象:
MyCustomServiceClient myClient = new MyCustomServiceClient();
myClient.GetData();
myClient.GetData();
如何布局我的服务,以便在创建代理实例期间传递参数,即
MyCustomServiceClient myClient = new MyCustomServiceClient("SomeString");
我注意到我所做的每个方法调用都会创建一个新的 MyCustomService 实例(即我可以在 MyCustomService 的 Tor 上获得断点)。所以,我希望我在创建代理对象(即 SomeString)时传递的值存在于我所做的所有调用中,直到 myClient 的生命周期
有什么想法吗?
【问题讨论】:
-
你想在构造函数中设置什么?您尝试为每个客户设置的值是否唯一?
-
是的。我传递的字符串对于每个客户来说都是独一无二的。
-
您最好的选择可能是使用
InstanceContextMode.PerSession,正如米兰在下面的回答中所写的那样。您将无法在构造函数中设置值,因此您需要在客户端进行的第一次调用时将其传递(通过特定调用设置值或检查是否已在每次调用时设置) .如果您可以提供更多设计要求来说明您想要/需要这样做的原因,我们可能会给出更好的答案。