假设我有一个类似于这个的类(具有所有必需的WCF属性):
class JobProducer
{
Job Produce()
{
// Do some work
return new Job(params);
}
}
和WCF服务(我没有写完所有属性,但是他们在那里)
class MyService : IService
{
Producer GetProducer()
{
return new Producer();
}
}
和WCF客户端:
IService client;
var producer = client.GetProducer();
var job = producer.Produce();
while (job != null)
{
// Process job
job = producer.Produce();
}
这种设计会起作用吗?我应该注意哪些缺点?
更具体地说,当我在Produce()
上调用Producer
方法时会发生什么? WCF会将该方法调用路由到服务,并在Job
准备就绪时取消阻止客户端线程吗?
我只想从服务中返回Stream
,但我想避免将字节反序列化为具体类,让框架为我做。
答案 0 :(得分:1)
将执行Job类的本地实例上的Produce()方法。由于Produce()不是服务端点,因此不会进行任何服务器调用。从服务端点返回的Job实例不是从服务器租用的,而是完全独立的,重要的是,与服务器上的类型不同,但序列化兼容类型。