/
CompositeDuplexBindingElement.xml
389 lines (368 loc) · 29.1 KB
/
CompositeDuplexBindingElement.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
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
<Type Name="CompositeDuplexBindingElement" FullName="System.ServiceModel.Channels.CompositeDuplexBindingElement">
<TypeSignature Language="C#" Value="public sealed class CompositeDuplexBindingElement : System.ServiceModel.Channels.BindingElement, System.ServiceModel.Description.IPolicyExportExtension" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi sealed beforefieldinit CompositeDuplexBindingElement extends System.ServiceModel.Channels.BindingElement implements class System.ServiceModel.Description.IPolicyExportExtension" />
<TypeSignature Language="DocId" Value="T:System.ServiceModel.Channels.CompositeDuplexBindingElement" />
<TypeSignature Language="VB.NET" Value="Public NotInheritable Class CompositeDuplexBindingElement
Inherits BindingElement
Implements IPolicyExportExtension" />
<TypeSignature Language="F#" Value="type CompositeDuplexBindingElement = class
 inherit BindingElement
 interface IPolicyExportExtension" />
<TypeSignature Language="C++ CLI" Value="public ref class CompositeDuplexBindingElement sealed : System::ServiceModel::Channels::BindingElement, System::ServiceModel::Description::IPolicyExportExtension" />
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.ServiceModel.Channels.BindingElement</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>System.ServiceModel.Description.IPolicyExportExtension</InterfaceName>
</Interface>
</Interfaces>
<Docs>
<summary>Represents the binding element that is used when the client must expose an endpoint for the service to send messages back to the client.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This is commonly used with transports, such as HTTP, that do not allow duplex communications natively. TCP, by contrast, does allow duplex communications natively and so does not require the use of this binding element for the service to send messages back to a client.
The client must expose an address at which the service can contact it to establish a connection from the service to the client. This client address is provided by the <xref:System.ServiceModel.Channels.CompositeDuplexBindingElement.ClientBaseAddress%2A> property. Note that Windows Communication Foundation (WCF) auto-generates a <xref:System.ServiceModel.Channels.CompositeDuplexBindingElement.ClientBaseAddress%2A> if one is not explicitly set by the user.
]]></format>
</remarks>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public CompositeDuplexBindingElement ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.Channels.CompositeDuplexBindingElement.#ctor" />
<MemberSignature Language="VB.NET" Value="Public Sub New ()" />
<MemberSignature Language="C++ CLI" Value="public:
 CompositeDuplexBindingElement();" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Attributes>
<Attribute FrameworkAlternate="netframework-4.0">
<AttributeName Language="C#">[System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")>]</AttributeName>
</Attribute>
</Attributes>
<Parameters />
<Docs>
<summary>Initializes a new instance of the <see cref="T:System.ServiceModel.Channels.CompositeDuplexBindingElement" /> class.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="BuildChannelFactory<TChannel>">
<MemberSignature Language="C#" Value="public override System.ServiceModel.Channels.IChannelFactory<TChannel> BuildChannelFactory<TChannel> (System.ServiceModel.Channels.BindingContext context);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.ServiceModel.Channels.IChannelFactory`1<!!TChannel> BuildChannelFactory<TChannel>(class System.ServiceModel.Channels.BindingContext context) cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.Channels.CompositeDuplexBindingElement.BuildChannelFactory``1(System.ServiceModel.Channels.BindingContext)" />
<MemberSignature Language="VB.NET" Value="Public Overrides Function BuildChannelFactory(Of TChannel) (context As BindingContext) As IChannelFactory(Of TChannel)" />
<MemberSignature Language="F#" Value="override this.BuildChannelFactory : System.ServiceModel.Channels.BindingContext -> System.ServiceModel.Channels.IChannelFactory<'Channel>" Usage="compositeDuplexBindingElement.BuildChannelFactory context" />
<MemberSignature Language="C++ CLI" Value="public:
generic <typename TChannel>
 override System::ServiceModel::Channels::IChannelFactory<TChannel> ^ BuildChannelFactory(System::ServiceModel::Channels::BindingContext ^ context);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.ServiceModel.Channels.IChannelFactory<TChannel></ReturnType>
</ReturnValue>
<TypeParameters>
<TypeParameter Name="TChannel" />
</TypeParameters>
<Parameters>
<Parameter Name="context" Type="System.ServiceModel.Channels.BindingContext" />
</Parameters>
<Docs>
<typeparam name="TChannel">The <see cref="T:System.ServiceModel.Channels.IChannel" /> that the factory produces.</typeparam>
<param name="context">The <see cref="T:System.ServiceModel.Channels.BindingContext" /> that provides the context required to build the channel factory.</param>
<summary>Returns a channel factory that can create a composite duplex channel.</summary>
<returns>A <see cref="T:System.ServiceModel.Channels.IChannelFactory`1" /> that creates a composite duplex channel of type <paramref name="TChannel" />.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The build context requires an <xref:System.ServiceModel.Channels.IOutputChannel> for the `TChannel`.
]]></format>
</remarks>
<exception cref="T:System.ArgumentNullException">
<paramref name="context" /> is <see langword="null" />.</exception>
<exception cref="T:System.ArgumentException">The <paramref name="TChannel" /> is not of type <see cref="T:System.ServiceModel.Channels.IOutputChannel" /> and is not supported.</exception>
</Docs>
</Member>
<Member MemberName="BuildChannelListener<TChannel>">
<MemberSignature Language="C#" Value="public override System.ServiceModel.Channels.IChannelListener<TChannel> BuildChannelListener<TChannel> (System.ServiceModel.Channels.BindingContext context) where TChannel : class, System.ServiceModel.Channels.IChannel;" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.ServiceModel.Channels.IChannelListener`1<!!TChannel> BuildChannelListener<class (class System.ServiceModel.Channels.IChannel) TChannel>(class System.ServiceModel.Channels.BindingContext context) cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.Channels.CompositeDuplexBindingElement.BuildChannelListener``1(System.ServiceModel.Channels.BindingContext)" />
<MemberSignature Language="VB.NET" Value="Public Overrides Function BuildChannelListener(Of TChannel As {Class, IChannel}) (context As BindingContext) As IChannelListener(Of TChannel)" />
<MemberSignature Language="F#" Value="override this.BuildChannelListener : System.ServiceModel.Channels.BindingContext -> System.ServiceModel.Channels.IChannelListener<'Channel (requires 'Channel : null and 'Channel :> System.ServiceModel.Channels.IChannel)> (requires 'Channel : null and 'Channel :> System.ServiceModel.Channels.IChannel)" Usage="compositeDuplexBindingElement.BuildChannelListener context" />
<MemberSignature Language="C++ CLI" Value="public:
generic <typename TChannel>
 where TChannel : class, System::ServiceModel::Channels::IChannel override System::ServiceModel::Channels::IChannelListener<TChannel> ^ BuildChannelListener(System::ServiceModel::Channels::BindingContext ^ context);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.ServiceModel.Channels.IChannelListener<TChannel></ReturnType>
</ReturnValue>
<TypeParameters>
<TypeParameter Name="TChannel">
<Constraints>
<ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute>
<InterfaceName>System.ServiceModel.Channels.IChannel</InterfaceName>
</Constraints>
</TypeParameter>
</TypeParameters>
<Parameters>
<Parameter Name="context" Type="System.ServiceModel.Channels.BindingContext" />
</Parameters>
<Docs>
<typeparam name="TChannel">The <see cref="T:System.ServiceModel.Channels.IChannel" /> that the listener accepts.</typeparam>
<param name="context">The <see cref="T:System.ServiceModel.Channels.BindingContext" /> that provides the context required to build the channel listener.</param>
<summary>Returns a channel listener that can accept a composite duplex channel.</summary>
<returns>An <see cref="T:System.ServiceModel.Channels.IChannelListener`1" /> that accepts a composite duplex channel of type <paramref name="TChannel" />.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
The build context requires an <xref:System.ServiceModel.Channels.IInputChannel> for the `TChannel`.
]]></format>
</remarks>
<exception cref="T:System.ArgumentNullException">
<paramref name="context" /> is <see langword="null" />.</exception>
<exception cref="T:System.ArgumentException">The <paramref name="TChannel" /> is not of type <see cref="T:System.ServiceModel.Channels.IInputChannel" /> and is not supported.</exception>
</Docs>
</Member>
<Member MemberName="CanBuildChannelFactory<TChannel>">
<MemberSignature Language="C#" Value="public override bool CanBuildChannelFactory<TChannel> (System.ServiceModel.Channels.BindingContext context);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool CanBuildChannelFactory<TChannel>(class System.ServiceModel.Channels.BindingContext context) cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.Channels.CompositeDuplexBindingElement.CanBuildChannelFactory``1(System.ServiceModel.Channels.BindingContext)" />
<MemberSignature Language="VB.NET" Value="Public Overrides Function CanBuildChannelFactory(Of TChannel) (context As BindingContext) As Boolean" />
<MemberSignature Language="F#" Value="override this.CanBuildChannelFactory : System.ServiceModel.Channels.BindingContext -> bool" Usage="compositeDuplexBindingElement.CanBuildChannelFactory context" />
<MemberSignature Language="C++ CLI" Value="public:
generic <typename TChannel>
 override bool CanBuildChannelFactory(System::ServiceModel::Channels::BindingContext ^ context);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<TypeParameters>
<TypeParameter Name="TChannel" />
</TypeParameters>
<Parameters>
<Parameter Name="context" Type="System.ServiceModel.Channels.BindingContext" />
</Parameters>
<Docs>
<typeparam name="TChannel">The <see cref="T:System.ServiceModel.Channels.IChannel" /> that the channel factory produces.</typeparam>
<param name="context">The <see cref="T:System.ServiceModel.Channels.BindingContext" /> that provides the context required to build the channel listener.</param>
<summary>Returns a value that indicates whether the binding can build the channel factory that produces a specific type of channel that satisfies the context requirements.</summary>
<returns>
<see langword="true" /> if the binding can build the channel factory; otherwise, <see langword="false" />.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
`true` if `TChannel` == <xref:System.ServiceModel.Channels.IOutputChannel> and the inner binding can also build <xref:System.ServiceModel.Channels.IOutputChannel>; otherwise, `false`.
]]></format>
</remarks>
<exception cref="T:System.ArgumentNullException">
<paramref name="context" /> is <see langword="null" />.</exception>
</Docs>
</Member>
<Member MemberName="CanBuildChannelListener<TChannel>">
<MemberSignature Language="C#" Value="public override bool CanBuildChannelListener<TChannel> (System.ServiceModel.Channels.BindingContext context) where TChannel : class, System.ServiceModel.Channels.IChannel;" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance bool CanBuildChannelListener<class (class System.ServiceModel.Channels.IChannel) TChannel>(class System.ServiceModel.Channels.BindingContext context) cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.Channels.CompositeDuplexBindingElement.CanBuildChannelListener``1(System.ServiceModel.Channels.BindingContext)" />
<MemberSignature Language="VB.NET" Value="Public Overrides Function CanBuildChannelListener(Of TChannel As {Class, IChannel}) (context As BindingContext) As Boolean" />
<MemberSignature Language="F#" Value="override this.CanBuildChannelListener : System.ServiceModel.Channels.BindingContext -> bool (requires 'Channel : null and 'Channel :> System.ServiceModel.Channels.IChannel)" Usage="compositeDuplexBindingElement.CanBuildChannelListener context" />
<MemberSignature Language="C++ CLI" Value="public:
generic <typename TChannel>
 where TChannel : class, System::ServiceModel::Channels::IChannel override bool CanBuildChannelListener(System::ServiceModel::Channels::BindingContext ^ context);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<TypeParameters>
<TypeParameter Name="TChannel">
<Constraints>
<ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute>
<InterfaceName>System.ServiceModel.Channels.IChannel</InterfaceName>
</Constraints>
</TypeParameter>
</TypeParameters>
<Parameters>
<Parameter Name="context" Type="System.ServiceModel.Channels.BindingContext" />
</Parameters>
<Docs>
<typeparam name="TChannel">The <see cref="T:System.ServiceModel.Channels.IChannel" /> that the listener accepts.</typeparam>
<param name="context">The <see cref="T:System.ServiceModel.Channels.BindingContext" /> that provides the context required to build the channel listener.</param>
<summary>Returns a value that indicates whether the binding can build the channel listener that accepts a specific type of channel that satisfies the context requirements.</summary>
<returns>
<see langword="true" /> if the channel listener can be built for the build required to accept the specified type of channel; otherwise, <see langword="false" />.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
`true` if `TChannel` == <xref:System.ServiceModel.Channels.IInputChannel> and the inner binding can also build <xref:System.ServiceModel.Channels.IInputChannel>; otherwise, `false`.
]]></format>
</remarks>
<exception cref="T:System.ArgumentNullException">
<paramref name="context" /> is <see langword="null" />.</exception>
</Docs>
</Member>
<Member MemberName="ClientBaseAddress">
<MemberSignature Language="C#" Value="public Uri ClientBaseAddress { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Uri ClientBaseAddress" />
<MemberSignature Language="DocId" Value="P:System.ServiceModel.Channels.CompositeDuplexBindingElement.ClientBaseAddress" />
<MemberSignature Language="VB.NET" Value="Public Property ClientBaseAddress As Uri" />
<MemberSignature Language="F#" Value="member this.ClientBaseAddress : Uri with get, set" Usage="System.ServiceModel.Channels.CompositeDuplexBindingElement.ClientBaseAddress" />
<MemberSignature Language="C++ CLI" Value="public:
 property Uri ^ ClientBaseAddress { Uri ^ get(); void set(Uri ^ value); };" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>3.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.ComponentModel.DefaultValue(null)]</AttributeName>
<AttributeName Language="F#">[<System.ComponentModel.DefaultValue(null)>]</AttributeName>
</Attribute>
<Attribute FrameworkAlternate="netframework-4.0">
<AttributeName Language="C#">[get: System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]</AttributeName>
<AttributeName Language="F#">[<get: System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")>]</AttributeName>
</Attribute>
<Attribute FrameworkAlternate="netframework-4.0">
<AttributeName Language="C#">[set: System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]</AttributeName>
<AttributeName Language="F#">[<set: System.Runtime.TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")>]</AttributeName>
</Attribute>
</Attributes>
<ReturnValue>
<ReturnType>System.Uri</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets or sets the base address for the client.</summary>
<value>A <see cref="T:System.Uri" /> that contains the base address for the client.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This property provides an address at which the service can contact the client. A `null` value causes the system to automatically generate a client base address.
This is a base address, not an absolute address. A GUID is appended to the base address when generating client endpoints from this binding.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Clone">
<MemberSignature Language="C#" Value="public override System.ServiceModel.Channels.BindingElement Clone ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance class System.ServiceModel.Channels.BindingElement Clone() cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.Channels.CompositeDuplexBindingElement.Clone" />
<MemberSignature Language="VB.NET" Value="Public Overrides Function Clone () As BindingElement" />
<MemberSignature Language="F#" Value="override this.Clone : unit -> System.ServiceModel.Channels.BindingElement" Usage="compositeDuplexBindingElement.Clone " />
<MemberSignature Language="C++ CLI" Value="public:
 override System::ServiceModel::Channels::BindingElement ^ Clone();" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.ServiceModel.Channels.BindingElement</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<summary>Returns a deep clone of the current binding element.</summary>
<returns>A <see cref="T:System.ServiceModel.Channels.CompositeDuplexBindingElement" /> that is a deep clone of the current binding element.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Returning a clone enables the runtime to support the case in which multiple custom bindings share a custom binding element. If a clone is not returned, the run-time behavior is undefined.
A deep clone of an object creates a copy of the object and a copy of everything directly or indirectly referenced by that object. (This is also called copying the entire object graph.) A shallow clone of an object, by contrast, is a copy of the object only. If the object contains references to other objects, the shallow copy does not create copies of the referred objects; instead, it copies only the references to the original objects. In particular, a deep copy of <xref:System.ServiceModel.Channels.CompositeDuplexBindingElement> copies over the <xref:System.ServiceModel.Channels.CompositeDuplexBindingElement.ClientBaseAddress%2A> value.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="GetProperty<T>">
<MemberSignature Language="C#" Value="public override T GetProperty<T> (System.ServiceModel.Channels.BindingContext context) where T : class;" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig virtual instance !!T GetProperty<class T>(class System.ServiceModel.Channels.BindingContext context) cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.Channels.CompositeDuplexBindingElement.GetProperty``1(System.ServiceModel.Channels.BindingContext)" />
<MemberSignature Language="VB.NET" Value="Public Overrides Function GetProperty(Of T As Class) (context As BindingContext) As T" />
<MemberSignature Language="F#" Value="override this.GetProperty : System.ServiceModel.Channels.BindingContext -> 'T (requires 'T : null)" Usage="compositeDuplexBindingElement.GetProperty context" />
<MemberSignature Language="C++ CLI" Value="public:
generic <typename T>
 where T : class override T GetProperty(System::ServiceModel::Channels::BindingContext ^ context);" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>T</ReturnType>
</ReturnValue>
<TypeParameters>
<TypeParameter Name="T">
<Constraints>
<ParameterAttribute>ReferenceTypeConstraint</ParameterAttribute>
</Constraints>
</TypeParameter>
</TypeParameters>
<Parameters>
<Parameter Name="context" Type="System.ServiceModel.Channels.BindingContext" />
</Parameters>
<Docs>
<typeparam name="T">The typed object whose support is being tested.</typeparam>
<param name="context">The <see cref="T:System.ServiceModel.Channels.BindingContext" /> that provides the context required to build the channel.</param>
<summary>Returns a typed object requested from the appropriate layer in one of the channel stacks.</summary>
<returns>The typed object <paramref name="T" /> requested if it is supported; or <see langword="null" /> if it is not.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
Use this to request a typed object, such as an interface for setting properties or getting status, from the appropriate layer in the stacked binding. If a layer supports returning the requested object, it returns it. If not, it delegates the call down to the next layer in the stack. If it gets to the bottom of the stack and no layer supports getting the requested object then the caller is returned a `null` value.
]]></format>
</remarks>
<exception cref="T:System.ArgumentNullException">
<paramref name="context" /> is <see langword="null" />.</exception>
</Docs>
</Member>
<Member MemberName="System.ServiceModel.Description.IPolicyExportExtension.ExportPolicy">
<MemberSignature Language="C#" Value="void IPolicyExportExtension.ExportPolicy (System.ServiceModel.Description.MetadataExporter exporter, System.ServiceModel.Description.PolicyConversionContext context);" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.ServiceModel.Description.IPolicyExportExtension.ExportPolicy(class System.ServiceModel.Description.MetadataExporter exporter, class System.ServiceModel.Description.PolicyConversionContext context) cil managed" />
<MemberSignature Language="DocId" Value="M:System.ServiceModel.Channels.CompositeDuplexBindingElement.System#ServiceModel#Description#IPolicyExportExtension#ExportPolicy(System.ServiceModel.Description.MetadataExporter,System.ServiceModel.Description.PolicyConversionContext)" />
<MemberSignature Language="VB.NET" Value="Sub ExportPolicy (exporter As MetadataExporter, context As PolicyConversionContext) Implements IPolicyExportExtension.ExportPolicy" />
<MemberSignature Language="F#" Value="abstract member System.ServiceModel.Description.IPolicyExportExtension.ExportPolicy : System.ServiceModel.Description.MetadataExporter * System.ServiceModel.Description.PolicyConversionContext -> unit
override this.System.ServiceModel.Description.IPolicyExportExtension.ExportPolicy : System.ServiceModel.Description.MetadataExporter * System.ServiceModel.Description.PolicyConversionContext -> unit" Usage="compositeDuplexBindingElement.System.ServiceModel.Description.IPolicyExportExtension.ExportPolicy (exporter, context)" />
<MemberSignature Language="C++ CLI" Value=" virtual void System.ServiceModel.Description.IPolicyExportExtension.ExportPolicy(System::ServiceModel::Description::MetadataExporter ^ exporter, System::ServiceModel::Description::PolicyConversionContext ^ context) = System::ServiceModel::Description::IPolicyExportExtension::ExportPolicy;" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.ServiceModel.Description.IPolicyExportExtension.ExportPolicy(System.ServiceModel.Description.MetadataExporter,System.ServiceModel.Description.PolicyConversionContext)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.ServiceModel</AssemblyName>
<AssemblyVersion>3.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="exporter" Type="System.ServiceModel.Description.MetadataExporter" />
<Parameter Name="context" Type="System.ServiceModel.Description.PolicyConversionContext" />
</Parameters>
<Docs>
<param name="exporter">The <see cref="T:System.ServiceModel.Description.MetadataExporter" /> that you can use to modify the exporting process.</param>
<param name="context">The <see cref="T:System.ServiceModel.Description.PolicyConversionContext" /> that you can use to insert your custom policy assertion.</param>
<summary>Exports custom policy assertions about bindings that represent the presence of composite duplex in the binding.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
For more information, see <xref:System.ServiceModel.Description.IPolicyExportExtension>.
]]></format>
</remarks>
<exception cref="T:System.ArgumentNullException">
<paramref name="context" /> is <see langword="null" />.</exception>
</Docs>
</Member>
</Members>
</Type>