-
Notifications
You must be signed in to change notification settings - Fork 1.5k
/
IServerChannelSink.xml
241 lines (223 loc) · 21.2 KB
/
IServerChannelSink.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
<Type Name="IServerChannelSink" FullName="System.Runtime.Remoting.Channels.IServerChannelSink">
<TypeSignature Language="C#" Value="public interface IServerChannelSink : System.Runtime.Remoting.Channels.IChannelSinkBase" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IServerChannelSink implements class System.Runtime.Remoting.Channels.IChannelSinkBase" />
<TypeSignature Language="DocId" Value="T:System.Runtime.Remoting.Channels.IServerChannelSink" />
<TypeSignature Language="VB.NET" Value="Public Interface IServerChannelSink
Implements IChannelSinkBase" />
<TypeSignature Language="F#" Value="type IServerChannelSink = interface
 interface IChannelSinkBase" />
<TypeSignature Language="C++ CLI" Value="public interface class IServerChannelSink : System::Runtime::Remoting::Channels::IChannelSinkBase" />
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces>
<Interface>
<InterfaceName>System.Runtime.Remoting.Channels.IChannelSinkBase</InterfaceName>
</Interface>
</Interfaces>
<Attributes>
<Attribute FrameworkAlternate="netframework-2.0;netframework-3.0;netframework-3.5;netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1">
<AttributeName Language="C#">[System.Runtime.InteropServices.ComVisible(true)]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.InteropServices.ComVisible(true)>]</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>Provides methods used for security and transport sinks.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Channel sinks provide a plug-in point that allows access to the underlying messages flowing through the channel as well as the stream used by the transport mechanism to send messages to a remote object. Channel sinks are linked together in a chain of channel sink providers, and all channel messages flow through this chain of sinks before the message is serialized and transported.
## Examples
The following code example illustrates an implementation of the <xref:System.Runtime.Remoting.Channels.IServerChannelSink> interface.
:::code language="cpp" source="~/snippets/cpp/VS_Snippets_Remoting/Remoting_Sinks/CPP/serversink.cpp" id="Snippet60":::
:::code language="csharp" source="~/snippets/csharp/System.Runtime.Remoting.Channels/IClientChannelSink/Overview/serversink.cs" id="Snippet60":::
See the <xref:System.Runtime.Remoting.Channels.IServerChannelSinkProvider> interface documentation for an example of the corresponding server sink provider implementation.
]]></format>
</remarks>
</Docs>
<Members>
<Member MemberName="AsyncProcessResponse">
<MemberSignature Language="C#" Value="public void AsyncProcessResponse (System.Runtime.Remoting.Channels.IServerResponseChannelSinkStack sinkStack, object state, System.Runtime.Remoting.Messaging.IMessage msg, System.Runtime.Remoting.Channels.ITransportHeaders headers, System.IO.Stream stream);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AsyncProcessResponse(class System.Runtime.Remoting.Channels.IServerResponseChannelSinkStack sinkStack, object state, class System.Runtime.Remoting.Messaging.IMessage msg, class System.Runtime.Remoting.Channels.ITransportHeaders headers, class System.IO.Stream stream) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Runtime.Remoting.Channels.IServerChannelSink.AsyncProcessResponse(System.Runtime.Remoting.Channels.IServerResponseChannelSinkStack,System.Object,System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Channels.ITransportHeaders,System.IO.Stream)" />
<MemberSignature Language="VB.NET" Value="Public Sub AsyncProcessResponse (sinkStack As IServerResponseChannelSinkStack, state As Object, msg As IMessage, headers As ITransportHeaders, stream As Stream)" />
<MemberSignature Language="F#" Value="abstract member AsyncProcessResponse : System.Runtime.Remoting.Channels.IServerResponseChannelSinkStack * obj * System.Runtime.Remoting.Messaging.IMessage * System.Runtime.Remoting.Channels.ITransportHeaders * System.IO.Stream -> unit" Usage="iServerChannelSink.AsyncProcessResponse (sinkStack, state, msg, headers, stream)" />
<MemberSignature Language="C++ CLI" Value="public:
 void AsyncProcessResponse(System::Runtime::Remoting::Channels::IServerResponseChannelSinkStack ^ sinkStack, System::Object ^ state, System::Runtime::Remoting::Messaging::IMessage ^ msg, System::Runtime::Remoting::Channels::ITransportHeaders ^ headers, System::IO::Stream ^ stream);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1">
<AttributeName Language="C#">[System.Security.SecurityCritical]</AttributeName>
<AttributeName Language="F#">[<System.Security.SecurityCritical>]</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="sinkStack" Type="System.Runtime.Remoting.Channels.IServerResponseChannelSinkStack" />
<Parameter Name="state" Type="System.Object" />
<Parameter Name="msg" Type="System.Runtime.Remoting.Messaging.IMessage" />
<Parameter Name="headers" Type="System.Runtime.Remoting.Channels.ITransportHeaders" />
<Parameter Name="stream" Type="System.IO.Stream" />
</Parameters>
<Docs>
<param name="sinkStack">A stack of sinks leading back to the server transport sink.</param>
<param name="state">Information generated on the request side that is associated with this sink.</param>
<param name="msg">The response message.</param>
<param name="headers">The headers to add to the return message heading to the client.</param>
<param name="stream">The stream heading back to the transport sink.</param>
<summary>Requests processing from the current sink of the response from a method call sent asynchronously.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The `state` parameter contains information that was pushed onto the channel sink stack and associated with the current sink.
## Examples
:::code language="cpp" source="~/snippets/cpp/VS_Snippets_Remoting/CommonTransportKeys/CPP/commontransportkeys.cpp" id="Snippet1":::
:::code language="csharp" source="~/snippets/csharp/System.Runtime.Remoting.Channels/BaseChannelObjectWithProperties/Overview/commontransportkeys.cs" id="Snippet1":::
:::code language="vb" source="~/snippets/visualbasic/VS_Snippets_Remoting/CommonTransportKeys/VB/commontransportkeys.vb" id="Snippet1":::
]]></format>
</remarks>
<exception cref="T:System.Security.SecurityException">The immediate caller does not have infrastructure permission.</exception>
</Docs>
</Member>
<Member MemberName="GetResponseStream">
<MemberSignature Language="C#" Value="public System.IO.Stream GetResponseStream (System.Runtime.Remoting.Channels.IServerResponseChannelSinkStack sinkStack, object state, System.Runtime.Remoting.Messaging.IMessage msg, System.Runtime.Remoting.Channels.ITransportHeaders headers);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.IO.Stream GetResponseStream(class System.Runtime.Remoting.Channels.IServerResponseChannelSinkStack sinkStack, object state, class System.Runtime.Remoting.Messaging.IMessage msg, class System.Runtime.Remoting.Channels.ITransportHeaders headers) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Runtime.Remoting.Channels.IServerChannelSink.GetResponseStream(System.Runtime.Remoting.Channels.IServerResponseChannelSinkStack,System.Object,System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Channels.ITransportHeaders)" />
<MemberSignature Language="VB.NET" Value="Public Function GetResponseStream (sinkStack As IServerResponseChannelSinkStack, state As Object, msg As IMessage, headers As ITransportHeaders) As Stream" />
<MemberSignature Language="F#" Value="abstract member GetResponseStream : System.Runtime.Remoting.Channels.IServerResponseChannelSinkStack * obj * System.Runtime.Remoting.Messaging.IMessage * System.Runtime.Remoting.Channels.ITransportHeaders -> System.IO.Stream" Usage="iServerChannelSink.GetResponseStream (sinkStack, state, msg, headers)" />
<MemberSignature Language="C++ CLI" Value="public:
 System::IO::Stream ^ GetResponseStream(System::Runtime::Remoting::Channels::IServerResponseChannelSinkStack ^ sinkStack, System::Object ^ state, System::Runtime::Remoting::Messaging::IMessage ^ msg, System::Runtime::Remoting::Channels::ITransportHeaders ^ headers);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1">
<AttributeName Language="C#">[System.Security.SecurityCritical]</AttributeName>
<AttributeName Language="F#">[<System.Security.SecurityCritical>]</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.IO.Stream</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="sinkStack" Type="System.Runtime.Remoting.Channels.IServerResponseChannelSinkStack" />
<Parameter Name="state" Type="System.Object" />
<Parameter Name="msg" Type="System.Runtime.Remoting.Messaging.IMessage" />
<Parameter Name="headers" Type="System.Runtime.Remoting.Channels.ITransportHeaders" />
</Parameters>
<Docs>
<param name="sinkStack">A stack of sinks leading back to the server transport sink.</param>
<param name="state">The state that has been pushed to the stack by this sink.</param>
<param name="msg">The response message to serialize.</param>
<param name="headers">The headers to put in the response stream to the client.</param>
<summary>Returns the <see cref="T:System.IO.Stream" /> onto which the provided response message is to be serialized.</summary>
<returns>The <see cref="T:System.IO.Stream" /> onto which the provided response message is to be serialized.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This method is called when a response stream needs to be created.
]]></format>
</remarks>
<exception cref="T:System.Security.SecurityException">The immediate caller does not have infrastructure permission.</exception>
</Docs>
</Member>
<Member MemberName="NextChannelSink">
<MemberSignature Language="C#" Value="public System.Runtime.Remoting.Channels.IServerChannelSink NextChannelSink { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Runtime.Remoting.Channels.IServerChannelSink NextChannelSink" />
<MemberSignature Language="DocId" Value="P:System.Runtime.Remoting.Channels.IServerChannelSink.NextChannelSink" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property NextChannelSink As IServerChannelSink" />
<MemberSignature Language="F#" Value="member this.NextChannelSink : System.Runtime.Remoting.Channels.IServerChannelSink" Usage="System.Runtime.Remoting.Channels.IServerChannelSink.NextChannelSink" />
<MemberSignature Language="C++ CLI" Value="public:
 property System::Runtime::Remoting::Channels::IServerChannelSink ^ NextChannelSink { System::Runtime::Remoting::Channels::IServerChannelSink ^ get(); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1">
<AttributeName Language="C#">[get: System.Security.SecurityCritical]</AttributeName>
<AttributeName Language="F#">[<get: System.Security.SecurityCritical>]</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Runtime.Remoting.Channels.IServerChannelSink</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the next server channel sink in the server sink chain.</summary>
<value>The next server channel sink in the server sink chain.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Channel sinks are linked together in a chain of sink providers, and all channel messages flow through this chain before the message is serialized and transported.
]]></format>
</remarks>
<exception cref="T:System.Security.SecurityException">The immediate caller does not have the required <see cref="F:System.Security.Permissions.SecurityPermissionFlag.Infrastructure" /> permission.</exception>
</Docs>
</Member>
<Member MemberName="ProcessMessage">
<MemberSignature Language="C#" Value="public System.Runtime.Remoting.Channels.ServerProcessing ProcessMessage (System.Runtime.Remoting.Channels.IServerChannelSinkStack sinkStack, System.Runtime.Remoting.Messaging.IMessage requestMsg, System.Runtime.Remoting.Channels.ITransportHeaders requestHeaders, System.IO.Stream requestStream, out System.Runtime.Remoting.Messaging.IMessage responseMsg, out System.Runtime.Remoting.Channels.ITransportHeaders responseHeaders, out System.IO.Stream responseStream);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype System.Runtime.Remoting.Channels.ServerProcessing ProcessMessage(class System.Runtime.Remoting.Channels.IServerChannelSinkStack sinkStack, class System.Runtime.Remoting.Messaging.IMessage requestMsg, class System.Runtime.Remoting.Channels.ITransportHeaders requestHeaders, class System.IO.Stream requestStream, [out] class System.Runtime.Remoting.Messaging.IMessage& responseMsg, [out] class System.Runtime.Remoting.Channels.ITransportHeaders& responseHeaders, [out] class System.IO.Stream& responseStream) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Runtime.Remoting.Channels.IServerChannelSink.ProcessMessage(System.Runtime.Remoting.Channels.IServerChannelSinkStack,System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Channels.ITransportHeaders,System.IO.Stream,System.Runtime.Remoting.Messaging.IMessage@,System.Runtime.Remoting.Channels.ITransportHeaders@,System.IO.Stream@)" />
<MemberSignature Language="VB.NET" Value="Public Function ProcessMessage (sinkStack As IServerChannelSinkStack, requestMsg As IMessage, requestHeaders As ITransportHeaders, requestStream As Stream, ByRef responseMsg As IMessage, ByRef responseHeaders As ITransportHeaders, ByRef responseStream As Stream) As ServerProcessing" />
<MemberSignature Language="F#" Value="abstract member ProcessMessage : System.Runtime.Remoting.Channels.IServerChannelSinkStack * System.Runtime.Remoting.Messaging.IMessage * System.Runtime.Remoting.Channels.ITransportHeaders * System.IO.Stream * IMessage * ITransportHeaders * Stream -> System.Runtime.Remoting.Channels.ServerProcessing" Usage="iServerChannelSink.ProcessMessage (sinkStack, requestMsg, requestHeaders, requestStream, responseMsg, responseHeaders, responseStream)" />
<MemberSignature Language="C++ CLI" Value="public:
 System::Runtime::Remoting::Channels::ServerProcessing ProcessMessage(System::Runtime::Remoting::Channels::IServerChannelSinkStack ^ sinkStack, System::Runtime::Remoting::Messaging::IMessage ^ requestMsg, System::Runtime::Remoting::Channels::ITransportHeaders ^ requestHeaders, System::IO::Stream ^ requestStream, [Runtime::InteropServices::Out] System::Runtime::Remoting::Messaging::IMessage ^ % responseMsg, [Runtime::InteropServices::Out] System::Runtime::Remoting::Channels::ITransportHeaders ^ % responseHeaders, [Runtime::InteropServices::Out] System::IO::Stream ^ % responseStream);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>mscorlib</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0;netframework-4.5;netframework-4.5.1;netframework-4.5.2;netframework-4.6;netframework-4.6.1;netframework-4.6.2;netframework-4.7;netframework-4.7.1;netframework-4.7.2;netframework-4.8;netframework-4.8.1">
<AttributeName Language="C#">[System.Security.SecurityCritical]</AttributeName>
<AttributeName Language="F#">[<System.Security.SecurityCritical>]</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Runtime.Remoting.Channels.ServerProcessing</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="sinkStack" Type="System.Runtime.Remoting.Channels.IServerChannelSinkStack" />
<Parameter Name="requestMsg" Type="System.Runtime.Remoting.Messaging.IMessage" />
<Parameter Name="requestHeaders" Type="System.Runtime.Remoting.Channels.ITransportHeaders" />
<Parameter Name="requestStream" Type="System.IO.Stream" />
<Parameter Name="responseMsg" Type="System.Runtime.Remoting.Messaging.IMessage" RefType="out" />
<Parameter Name="responseHeaders" Type="System.Runtime.Remoting.Channels.ITransportHeaders" RefType="out" />
<Parameter Name="responseStream" Type="System.IO.Stream" RefType="out" />
</Parameters>
<Docs>
<param name="sinkStack">A stack of channel sinks that called the current sink.</param>
<param name="requestMsg">The message that contains the request.</param>
<param name="requestHeaders">Headers retrieved from the incoming message from the client.</param>
<param name="requestStream">The stream that needs to be to processed and passed on to the deserialization sink.</param>
<param name="responseMsg">When this method returns, contains a <see cref="T:System.Runtime.Remoting.Messaging.IMessage" /> that holds the response message. This parameter is passed uninitialized.</param>
<param name="responseHeaders">When this method returns, contains a <see cref="T:System.Runtime.Remoting.Channels.ITransportHeaders" /> that holds the headers that are to be added to return message heading to the client. This parameter is passed uninitialized.</param>
<param name="responseStream">When this method returns, contains a <see cref="T:System.IO.Stream" /> that is heading back to the transport sink. This parameter is passed uninitialized.</param>
<summary>Requests message processing from the current sink.</summary>
<returns>A <see cref="T:System.Runtime.Remoting.Channels.ServerProcessing" /> status value that provides information about how message was processed.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The job of a proxy is to convert a method call invoked on it into a message object. This message object, which implements the <xref:System.Runtime.Remoting.Messaging.IMessage> interface, is passed from the client end to the server end by invoking <xref:System.Runtime.Remoting.Channels.IServerChannelSink.ProcessMessage%2A> on message sink objects. Message sinks are chained together in the sense that every message sink is responsible for calling <xref:System.Runtime.Remoting.Channels.IServerChannelSink.ProcessMessage%2A> on the next message sink after it has performed its work. For instance, a synchronization-related message sink can cause a lock to be acquired or released, and then delegated further to the downstream message sink.
]]></format>
</remarks>
<exception cref="T:System.Security.SecurityException">The immediate caller does not have infrastructure permission.</exception>
</Docs>
</Member>
</Members>
</Type>