-
Notifications
You must be signed in to change notification settings - Fork 1.5k
/
BinaryClientFormatterSinkProvider.xml
174 lines (165 loc) · 14.1 KB
/
BinaryClientFormatterSinkProvider.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
<Type Name="BinaryClientFormatterSinkProvider" FullName="System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider">
<TypeSignature Language="C#" Value="public class BinaryClientFormatterSinkProvider : System.Runtime.Remoting.Channels.IClientFormatterSinkProvider" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit BinaryClientFormatterSinkProvider extends System.Object implements class System.Runtime.Remoting.Channels.IClientChannelSinkProvider, class System.Runtime.Remoting.Channels.IClientFormatterSinkProvider" />
<TypeSignature Language="DocId" Value="T:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider" />
<TypeSignature Language="VB.NET" Value="Public Class BinaryClientFormatterSinkProvider
Implements IClientFormatterSinkProvider" />
<TypeSignature Language="F#" Value="type BinaryClientFormatterSinkProvider = class
 interface IClientFormatterSinkProvider
 interface IClientChannelSinkProvider" />
<TypeSignature Language="C++ CLI" Value="public ref class BinaryClientFormatterSinkProvider : System::Runtime::Remoting::Channels::IClientFormatterSinkProvider" />
<AssemblyInfo>
<AssemblyName>System.Runtime.Remoting</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>System.Runtime.Remoting.Channels.IClientChannelSinkProvider</InterfaceName>
</Interface>
<Interface>
<InterfaceName>System.Runtime.Remoting.Channels.IClientFormatterSinkProvider</InterfaceName>
</Interface>
</Interfaces>
<Docs>
<summary>Provides the implementation for the binary client formatter sink provider.</summary>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
A <xref:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider> creates client formatter sinks that use the <xref:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter> to serialize messages for the client channel through which remoting messages flow.
The function of the formatter sink is to generate the necessary headers and serialize the message to the stream. After the formatter sink, the <xref:System.Runtime.Remoting.Messaging.IMessage> is forwarded to all sinks in the channel sink chain through the <xref:System.Runtime.Remoting.Channels.IClientChannelSink.ProcessMessage%2A> or <xref:System.Runtime.Remoting.Channels.IClientChannelSink.AsyncProcessRequest%2A> calls. At this stage, the message has already been serialized and is provided as information only. Sinks that need to create or modify the message must be placed in the sink chain before the formatter. You can do this by implementing both the <xref:System.Runtime.Remoting.Messaging.IMessageSink> and <xref:System.Runtime.Remoting.Channels.IClientChannelSink> interfaces. The formatter sink can then be placed in the sink chain later.
Formatter sinks use sink configuration properties to configure the channel at run time. Sink properties can be specified in a configuration file, or programmatically, inside of a <xref:System.Collections.IDictionary>. In a configuration file all values are represented by strings, but when building a property <xref:System.Collections.IDictionary> programmatically, value types can be specified with their native values or with strings.
The following table shows the sink configuration properties that can be specified for the current sink provider.
|Property|Description|
|--------------|-----------------|
|`includeVersions`|Specifies whether the formatter will include versioning information. Values are `true` or `false`.|
> [!IMPORTANT]
> Using an instance of this object with untrusted data or across an unsecure channel is a security risk. Use this object only with trusted data and across a secure channel. For more information, see [Validate All Inputs](https://owasp.org/www-project-proactive-controls/v3/en/c5-validate-inputs).
]]></format>
</remarks>
<altmember cref="T:System.Runtime.Serialization.Formatters.Binary.BinaryFormatter" />
<related type="Article" href="https://learn.microsoft.com/previous-versions/dotnet/netframework-4.0/kw7c6kwc(v=vs.100)">Channel and Formatter Configuration Properties</related>
</Docs>
<Members>
<MemberGroup MemberName=".ctor">
<AssemblyInfo>
<AssemblyName>System.Runtime.Remoting</AssemblyName>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Docs>
<summary>Initializes a new instance of the <see cref="T:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider" /> class.</summary>
</Docs>
</MemberGroup>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public BinaryClientFormatterSinkProvider ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberSignature Language="DocId" Value="M:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider.#ctor" />
<MemberSignature Language="VB.NET" Value="Public Sub New ()" />
<MemberSignature Language="C++ CLI" Value="public:
 BinaryClientFormatterSinkProvider();" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime.Remoting</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters />
<Docs>
<summary>Initializes a new instance of the <see cref="T:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider" /> class with default values.</summary>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public BinaryClientFormatterSinkProvider (System.Collections.IDictionary properties, System.Collections.ICollection providerData);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Collections.IDictionary properties, class System.Collections.ICollection providerData) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider.#ctor(System.Collections.IDictionary,System.Collections.ICollection)" />
<MemberSignature Language="VB.NET" Value="Public Sub New (properties As IDictionary, providerData As ICollection)" />
<MemberSignature Language="F#" Value="new System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider : System.Collections.IDictionary * System.Collections.ICollection -> System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider" Usage="new System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider (properties, providerData)" />
<MemberSignature Language="C++ CLI" Value="public:
 BinaryClientFormatterSinkProvider(System::Collections::IDictionary ^ properties, System::Collections::ICollection ^ providerData);" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyName>System.Runtime.Remoting</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="properties" Type="System.Collections.IDictionary" />
<Parameter Name="providerData" Type="System.Collections.ICollection" />
</Parameters>
<Docs>
<param name="properties">A <see cref="T:System.Collections.IDictionary" /> of configuration properties to use with the new instance of <see cref="T:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider" />.</param>
<param name="providerData">A <see cref="T:System.Collections.ICollection" /> of <see cref="T:System.Runtime.Remoting.Channels.SinkProviderData" /> objects that contain provider data to use with the new instance of <see cref="T:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider" />.</param>
<summary>Initializes a new instance of the <see cref="T:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider" /> class with the given properties and provider data.</summary>
<remarks>To be added.</remarks>
<related type="Article" href="https://learn.microsoft.com/previous-versions/dotnet/netframework-4.0/kw7c6kwc(v=vs.100)">Channel and Formatter Configuration Properties</related>
</Docs>
</Member>
<Member MemberName="CreateSink">
<MemberSignature Language="C#" Value="public System.Runtime.Remoting.Channels.IClientChannelSink CreateSink (System.Runtime.Remoting.Channels.IChannelSender channel, string url, object remoteChannelData);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance class System.Runtime.Remoting.Channels.IClientChannelSink CreateSink(class System.Runtime.Remoting.Channels.IChannelSender channel, string url, object remoteChannelData) cil managed" />
<MemberSignature Language="DocId" Value="M:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider.CreateSink(System.Runtime.Remoting.Channels.IChannelSender,System.String,System.Object)" />
<MemberSignature Language="VB.NET" Value="Public Function CreateSink (channel As IChannelSender, url As String, remoteChannelData As Object) As IClientChannelSink" />
<MemberSignature Language="F#" Value="abstract member CreateSink : System.Runtime.Remoting.Channels.IChannelSender * string * obj -> System.Runtime.Remoting.Channels.IClientChannelSink
override this.CreateSink : System.Runtime.Remoting.Channels.IChannelSender * string * obj -> System.Runtime.Remoting.Channels.IClientChannelSink" Usage="binaryClientFormatterSinkProvider.CreateSink (channel, url, remoteChannelData)" />
<MemberSignature Language="C++ CLI" Value="public:
 virtual System::Runtime::Remoting::Channels::IClientChannelSink ^ CreateSink(System::Runtime::Remoting::Channels::IChannelSender ^ channel, System::String ^ url, System::Object ^ remoteChannelData);" />
<MemberType>Method</MemberType>
<Implements>
<InterfaceMember>M:System.Runtime.Remoting.Channels.IClientChannelSinkProvider.CreateSink(System.Runtime.Remoting.Channels.IChannelSender,System.String,System.Object)</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Runtime.Remoting</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Runtime.Remoting.Channels.IClientChannelSink</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="channel" Type="System.Runtime.Remoting.Channels.IChannelSender" />
<Parameter Name="url" Type="System.String" />
<Parameter Name="remoteChannelData" Type="System.Object" />
</Parameters>
<Docs>
<param name="channel">Channel for which this sink chain is being constructed.</param>
<param name="url">URL of object to connect to or the channel URI for the target object.</param>
<param name="remoteChannelData">A channel data object that describes a channel on the remote server.</param>
<summary>Creates a sink chain.</summary>
<returns>The first sink of the newly formed channel sink chain, or <see langword="null" />, which indicates that this provider will not or cannot provide a connection for this endpoint.</returns>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
When the <xref:System.Runtime.Remoting.Channels.IClientChannelSinkProvider.CreateSink%2A> method is called, it creates its own channel sink, forwards the <xref:System.Runtime.Remoting.Channels.IClientChannelSinkProvider.CreateSink%2A> call to the next sink provider in the chain (if there is one), and ensures that the next sink and the current one are linked together.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="Next">
<MemberSignature Language="C#" Value="public System.Runtime.Remoting.Channels.IClientChannelSinkProvider Next { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Runtime.Remoting.Channels.IClientChannelSinkProvider Next" />
<MemberSignature Language="DocId" Value="P:System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider.Next" />
<MemberSignature Language="VB.NET" Value="Public Property Next As IClientChannelSinkProvider" />
<MemberSignature Language="F#" Value="member this.Next : System.Runtime.Remoting.Channels.IClientChannelSinkProvider with get, set" Usage="System.Runtime.Remoting.Channels.BinaryClientFormatterSinkProvider.Next" />
<MemberSignature Language="C++ CLI" Value="public:
 property System::Runtime::Remoting::Channels::IClientChannelSinkProvider ^ Next { System::Runtime::Remoting::Channels::IClientChannelSinkProvider ^ get(); void set(System::Runtime::Remoting::Channels::IClientChannelSinkProvider ^ value); };" />
<MemberType>Property</MemberType>
<Implements>
<InterfaceMember>P:System.Runtime.Remoting.Channels.IClientChannelSinkProvider.Next</InterfaceMember>
</Implements>
<AssemblyInfo>
<AssemblyName>System.Runtime.Remoting</AssemblyName>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Runtime.Remoting.Channels.IClientChannelSinkProvider</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets or sets the next <see cref="T:System.Runtime.Remoting.Channels.IClientChannelSinkProvider" /> in the sink provider chain.</summary>
<value>The next <see cref="T:System.Runtime.Remoting.Channels.IClientChannelSinkProvider" /> in the sink provider chain.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
</Members>
</Type>