Ron*_*ein 53 .net wcf idisposable stream
假设我有以下WCF实现:
public Stream Download(string path)
{
FileStream stream = new FileStream(path, FileMode.Open, FileAccess.Read);
return stream;
}
Run Code Online (Sandbox Code Playgroud)
谁负责处理退回的价值?毕竟,可能会发生网络故障,因此消费者可能无法处置它.
Pet*_*dek 33
如果您在MessageContract中包装Stream(因此您可以在标头中发送更多信息),请注意Stream不会自动处理!作为OperationBehavior.AutoDisposeParameters属性的名称,WCF会自动处理输入/输出参数,因此您必须在MessageContract类上实现IDisposable并在那里关闭流.