我有一个简单的控制台应用程序,通过net.tcp调用WCF服务并上传文件(使用Stream
)。 WCF服务是自托管的,Framework 4.0。
我正在寻找一种方法来在客户端添加一些“进度信息”。是应该用手写的IASync操作还是其他一些操作完成?
答案 0 :(得分:2)
这实际上很简单,虽然解决方案与WCF没有任何关系。创建一个包装器Stream
子类,将实际的源Stream传递给它。在各种Read
覆盖中,首先委托您正在包装的基础流。接下来,使用读取的字节数递增自定义属性,然后触发自定义事件,或者在自定义Stream子类上实现INotifyPropertyChanged。通过这样做,当WCF从包装器Stream读取以获取通过线路发送的字节时,您的客户端将能够观察到更改。