热点推荐
ZOL首页 > 软件资讯 > 软件学院 >

.Net远程方法调用研究(5)

.Net远程方法调用研究

博客 【转载】 2008年01月28日 14:55 评论

  这种方式与COM比较更加清晰,易懂,并且也确实易于开发,例如我们可以实现一个压缩的Sink。下面是开发一个CompressionSink的骨架例程,从这来看,COM实在是望尘莫及。

using System;

using System.Runtime.Remoting.Channels;

using System.Runtime.Remoting.Messaging;

using System.IO;


namespace CompressionSink

{

public class CompressionClientSink: BaseChannelSinkWithProperties,

IClientChannelSink

{

private IClientChannelSink _nextSink;

 


public CompressionClientSink(IClientChannelSink next)

{

_nextSink = next;

}

public IClientChannelSink NextChannelSink

{

get {

return _nextSink;

}

}

 


public void AsyncProcessRequest(IClientChannelSinkStack sinkStack,

IMessage msg,

ITransportHeaders headers,

Stream stream)

{

// TODO: Implement the pre-processing

 


sinkStack.Push(this,null);

_nextSink.AsyncProcessRequest(sinkStack,msg,headers,stream);

}

public void AsyncProcessResponse(IClientResponseChannelSinkStack sinkStack,

object state,

ITransportHeaders headers,

Stream stream)

{

// TODO: Implement the post-processing

 


sinkStack.AsyncProcessResponse(headers,stream);

}

 


public Stream GetRequestStream(IMessage msg,

ITransportHeaders headers)

{

return _nextSink.GetRequestStream(msg, headers);

}

 


public void ProcessMessage(IMessage msg,

ITransportHeaders requestHeaders,

Stream requestStream,

out ITransportHeaders responseHeaders,

out Stream responseStream)

{

// TODO: Implement the pre-processing

 


_nextSink.ProcessMessage(msg,

requestHeaders,

requestStream,

out responseHeaders,

out responseStream);

 


// TODO: Implement the post-processing

 


}

}

}

小结
以上就是我几天来对.NET Remoting的学习所得。我的学习主要集中在.NET Remoting的远程方法传递这方面,因为我觉得这才是RPC最关键的技术。从几天的学习所得,可以看出.NET FrameWork的确是一种技术,思想都非常先进的框架。我唯一的怀疑在于微软所谓的平台无关性,这方面,JAVA也许永远胜出一筹。

 

 

这篇文章0.1版放在我的blog上 http://blog.csdn.net/drizt/

上一页 1 2 3 4 5 
看完本文后的感受:文章感受排行>>
频道热词:微信  手机QQ  12306  
视觉焦点
新浪微博