-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
IClientMessageInspector.xml
199 lines (167 loc) · 12.5 KB
/
IClientMessageInspector.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
<Type Name="IClientMessageInspector" FullName="System.ServiceModel.Dispatcher.IClientMessageInspector">
<TypeSignature Language="C#" Value="public interface IClientMessageInspector" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract IClientMessageInspector" FrameworkAlternate="dotnet-uwp-10.0;netcore-1.0;netcore-1.1;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" />
<TypeSignature Language="DocId" Value="T:System.ServiceModel.Dispatcher.IClientMessageInspector" />
<TypeSignature Language="VB.NET" Value="Public Interface IClientMessageInspector" />
<TypeSignature Language="F#" Value="type IClientMessageInspector = interface" />
<TypeSignature Language="C++ CLI" Value="public interface class IClientMessageInspector" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract beforefieldinit IClientMessageInspector" FrameworkAlternate="net-8.0" />
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.ServiceModel.Primitives</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.1.0.0</AssemblyVersion>
<AssemblyVersion>4.1.1.0</AssemblyVersion>
<AssemblyVersion>4.6.0.0</AssemblyVersion>
<AssemblyVersion>4.7.0.0</AssemblyVersion>
<AssemblyVersion>4.9.0.0</AssemblyVersion>
<AssemblyVersion>4.10.0.0</AssemblyVersion>
<AssemblyVersion>4.10.2.0</AssemblyVersion>
<AssemblyVersion>5.0.0.0</AssemblyVersion>
<AssemblyVersion>6.0.0.0</AssemblyVersion>
<AssemblyVersion>6.2.0.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Private.ServiceModel</AssemblyName>
<AssemblyVersion>4.10.3.0</AssemblyVersion>
</AssemblyInfo>
<TypeForwardingChain>
<TypeForwarding From="System.ServiceModel" FromVersion="4.0.0.0" To="System.ServiceModel.Primitives" ToVersion="0.0.0.0" FrameworkAlternate="dotnet-uwp-10.0" />
</TypeForwardingChain>
<Interfaces />
<Docs>
<summary>Defines a message inspector object that can be added to the <see cref="P:System.ServiceModel.Dispatcher.ClientRuntime.MessageInspectors" /> collection to view or modify messages.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Implement the <xref:System.ServiceModel.Dispatcher.IClientMessageInspector> interface and add it to the <xref:System.ServiceModel.Dispatcher.ClientRuntime.MessageInspectors%2A> collection to inspect or modify messages as they pass through a WCF client object. For details, see <xref:System.ServiceModel.Dispatcher.ClientRuntime>.
## Examples
The following code example shows an implementation that writes strings to the console when the implementation is called.
[!code-csharp[Interceptors#1](~/snippets/csharp/VS_Snippets_CFX/interceptors/cs/interceptors.cs#1)]
[!code-vb[Interceptors#1](~/snippets/visualbasic/VS_Snippets_CFX/interceptors/vb/interceptors.vb#1)]
The following code example shows how to use an <xref:System.ServiceModel.Description.IEndpointBehavior?displayProperty=nameWithType> to insert the client message inspector in the client endpoint.
[!code-csharp[Interceptors#2](~/snippets/csharp/VS_Snippets_CFX/interceptors/cs/insertingbehaviors.cs#2)]
[!code-vb[Interceptors#2](~/snippets/visualbasic/VS_Snippets_CFX/interceptors/vb/insertingbehaviors.vb#2)]
Finally, the following code example shows how to modify the client configuration file to use the endpoint behavior with a particular endpoint.
[!code-xml[Interceptors#3](~/snippets/csharp/VS_Snippets_CFX/interceptors/cs/client.exe.config#3)]
]]></format>
</remarks>
</Docs>
<Members>
<Member MemberName="AfterReceiveReply">
<MemberSignature Language="C#" Value="public void AfterReceiveReply (ref System.ServiceModel.Channels.Message reply, object correlationState);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance void AfterReceiveReply(class System.ServiceModel.Channels.Message& reply, object correlationState) cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.Dispatcher.IClientMessageInspector.AfterReceiveReply(System.ServiceModel.Channels.Message@,System.Object)" />
<MemberSignature Language="VB.NET" Value="Public Sub AfterReceiveReply (ByRef reply As Message, correlationState As Object)" />
<MemberSignature Language="F#" Value="abstract member AfterReceiveReply : Message * obj -> unit" Usage="iClientMessageInspector.AfterReceiveReply (reply, correlationState)" />
<MemberSignature Language="C++ CLI" Value="public:
 void AfterReceiveReply(System::ServiceModel::Channels::Message ^ % reply, System::Object ^ correlationState);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.ServiceModel.Primitives</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.1.0.0</AssemblyVersion>
<AssemblyVersion>4.1.1.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Private.ServiceModel</AssemblyName>
<AssemblyVersion>4.10.3.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="reply" Type="System.ServiceModel.Channels.Message" RefType="ref" />
<Parameter Name="correlationState" Type="System.Object" />
</Parameters>
<Docs>
<param name="reply">The message to be transformed into types and handed back to the client application.</param>
<param name="correlationState">Correlation state data.</param>
<summary>Enables inspection or modification of a message after a reply message is received but prior to passing it back to the client application.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Implement <xref:System.ServiceModel.Dispatcher.IClientMessageInspector.AfterReceiveReply%2A> to inspect or modify a reply message after it has been received by the WCF client object but before it is deserialized into objects that are returned to the client application.
The `correlationState` is the object returned by the user when <xref:System.ServiceModel.Dispatcher.IClientMessageInspector.BeforeSendRequest%2A> is called for this message. The best practice is to make this a <xref:System.Guid?displayProperty=nameWithType> to ensure that no two `correlationState` objects are the same.
## Examples
The following code example shows an implementation that writes strings to the console when the implementation is called.
[!code-csharp[Interceptors#1](~/snippets/csharp/VS_Snippets_CFX/interceptors/cs/interceptors.cs#1)]
[!code-vb[Interceptors#1](~/snippets/visualbasic/VS_Snippets_CFX/interceptors/vb/interceptors.vb#1)]
The following code example shows how to use an <xref:System.ServiceModel.Description.IEndpointBehavior?displayProperty=nameWithType> to insert the client message inspector in the client endpoint.
[!code-csharp[Interceptors#2](~/snippets/csharp/VS_Snippets_CFX/interceptors/cs/insertingbehaviors.cs#2)]
[!code-vb[Interceptors#2](~/snippets/visualbasic/VS_Snippets_CFX/interceptors/vb/insertingbehaviors.vb#2)]
Finally, the following code example shows how to modify the client configuration file to use the endpoint behavior with a particular endpoint.
[!code-xml[Interceptors#3](~/snippets/csharp/VS_Snippets_CFX/interceptors/cs/client.exe.config#3)]
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="BeforeSendRequest">
<MemberSignature Language="C#" Value="public object BeforeSendRequest (ref System.ServiceModel.Channels.Message request, System.ServiceModel.IClientChannel channel);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance object BeforeSendRequest(class System.ServiceModel.Channels.Message& request, class System.ServiceModel.IClientChannel channel) cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.Dispatcher.IClientMessageInspector.BeforeSendRequest(System.ServiceModel.Channels.Message@,System.ServiceModel.IClientChannel)" />
<MemberSignature Language="VB.NET" Value="Public Function BeforeSendRequest (ByRef request As Message, channel As IClientChannel) As Object" />
<MemberSignature Language="F#" Value="abstract member BeforeSendRequest : Message * System.ServiceModel.IClientChannel -> obj" Usage="iClientMessageInspector.BeforeSendRequest (request, channel)" />
<MemberSignature Language="C++ CLI" Value="public:
 System::Object ^ BeforeSendRequest(System::ServiceModel::Channels::Message ^ % request, System::ServiceModel::IClientChannel ^ channel);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>2.0.5.0</AssemblyVersion>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.ServiceModel.Primitives</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
<AssemblyVersion>4.1.0.0</AssemblyVersion>
<AssemblyVersion>4.1.1.0</AssemblyVersion>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
</AssemblyInfo>
<AssemblyInfo>
<AssemblyName>System.Private.ServiceModel</AssemblyName>
<AssemblyVersion>4.10.3.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Object</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="request" Type="System.ServiceModel.Channels.Message" RefType="ref" />
<Parameter Name="channel" Type="System.ServiceModel.IClientChannel" />
</Parameters>
<Docs>
<param name="request">The message to be sent to the service.</param>
<param name="channel">The WCF client object channel.</param>
<summary>Enables inspection or modification of a message before a request message is sent to a service.</summary>
<returns>The object that is returned as the <paramref name="correlationState" /> argument of the <see cref="M:System.ServiceModel.Dispatcher.IClientMessageInspector.AfterReceiveReply(System.ServiceModel.Channels.Message@,System.Object)" /> method. This is <see langword="null" /> if no correlation state is used.
The best practice is to make this a <see cref="T:System.Guid" /> to ensure that no two <paramref name="correlationState" /> objects are the same.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Implement the <xref:System.ServiceModel.Dispatcher.IClientMessageInspector.BeforeSendRequest%2A> to inspect or modify a request message before it is sent.
## Examples
The following code example shows an implementation that writes strings to the console when the implementation is called.
[!code-csharp[Interceptors#1](~/snippets/csharp/VS_Snippets_CFX/interceptors/cs/interceptors.cs#1)]
[!code-vb[Interceptors#1](~/snippets/visualbasic/VS_Snippets_CFX/interceptors/vb/interceptors.vb#1)]
The following code example shows how to use an <xref:System.ServiceModel.Description.IEndpointBehavior?displayProperty=nameWithType> to insert the client message inspector in the client endpoint.
[!code-csharp[Interceptors#2](~/snippets/csharp/VS_Snippets_CFX/interceptors/cs/insertingbehaviors.cs#2)]
[!code-vb[Interceptors#2](~/snippets/visualbasic/VS_Snippets_CFX/interceptors/vb/insertingbehaviors.vb#2)]
Finally, the following code example shows how to modify the client configuration file to use the endpoint behavior with a particular endpoint.
[!code-xml[Interceptors#3](~/snippets/csharp/VS_Snippets_CFX/interceptors/cs/client.exe.config#3)]
]]></format>
</remarks>
</Docs>
</Member>
</Members>
</Type>