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

时间:2016-09-19 14:55:20

标签: c# .net wcf

假设我有一个类似于这个的类(具有所有必需的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,但我想避免将字节反序列化为具体类,让框架为我做。

1 个答案:

答案 0 :(得分:1)

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