我可以从WCF服务返回一个数据生成器吗?

本文关键字:数据 一个 WCF 服务 返回 我可以 | 更新日期: 2023-09-27 18:07:56

假设我有一个与此类似的类(具有所有必要的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();
}

那种设计可行吗?有什么缺点是我应该注意的吗?

更具体地说,当我在Producer上调用Produce()方法时会发生什么?当Job准备好时,WCF将该方法调用路由到服务并解除阻塞客户端线程吗?

我想简单地从服务返回一个Stream,但我想避免将字节反序列化到一个具体的类,让框架为我做。

我可以从WCF服务返回一个数据生成器吗?

将执行Job类的本地实例上的Produce()方法。由于Produce()不是服务端点,因此不会进行服务器调用。从服务端点返回的Job实例不是从服务器租用的,而是完全独立的,重要的是,与服务器上的类型不同,而是序列化兼容的类型。