简单地说,是否可以在已经示例化并完全开放的 outboundSystem.Net.WebSockets.WebSocket示例上确定以下任何一项:
System.Net.WebSockets.WebSocket
vuktfyat1#
没有任何简单的方法可以做到这一点
原因很简单,因为实际上可以在任何读/写流上创建WebSocket,而这些流可能根本不是网络流,所以拥有这样的属性并没有什么意义。也许它可以将内部流作为属性公开,但这可能会破坏封装。碰巧的是,ClientWebSocket确实包含一个字段private WebSocketHandle? _innerWebSocket,你可以从这个字段中使用反射来获取流。假设这个流是一个NetworkStream,那么你可以从它的Socket属性中获取信息。这样的方法对于任何对未记录的内部设计的库更改都是非常脆弱的。
WebSocket
ClientWebSocket
private WebSocketHandle? _innerWebSocket
NetworkStream
Socket
1条答案
按热度按时间vuktfyat1#
没有任何简单的方法可以做到这一点
原因很简单,因为实际上可以在任何读/写流上创建
WebSocket
,而这些流可能根本不是网络流,所以拥有这样的属性并没有什么意义。也许它可以将内部流作为属性公开,但这可能会破坏封装。
碰巧的是,
ClientWebSocket
确实包含一个字段private WebSocketHandle? _innerWebSocket
,你可以从这个字段中使用反射来获取流。假设这个流是一个NetworkStream
,那么你可以从它的Socket
属性中获取信息。这样的方法对于任何对未记录的内部设计的库更改都是非常脆弱的。