2.2.2.15 DelegateSerializationHolder
DelegateSerializationHolder is a Class. The Library name of the Class is "mscorlib". Its full name is 'System.DelegateSerializationHolder'. It contains information about a Delegate.
The DelegateSerializationHolder has a Member called Delegate, whose type is a DelegateEntry (section 2.2.2.14) value. The DelegateSerializationHolder is structured as a linked list, with each instance of DelegateEntry providing a reference to information about a Remote Method and its target in the Delegate.
For each Remote Method target of the Delegate, there is a Member to contain the Target Proxy for the Method. The Member is typed to the Server Type of the Remote Method. As specified in section 2.2.2.14, the value of the target field of the DelegateEntry for the Remote Method MUST match the name of this Member. An implementation MAY use any naming scheme to name the target Member.<21>
For each Remote Method, there is an optional Member that is typed to System.Reflection.MemberInfoSerializationHolder that contains information about the Method. To represent a Method, the Members of MemberInfoSerializationHolder MUST be set as follows:
The field Signature MUST contain the Method Signature of the Delegate. It MUST conform to the format specified in Method Signature (section 2.2.1.4).
The value of the field MemberType MUST be 8.
If the Method Member is present, then the method name specified by the Name field of MemberInfoSerializationHolder MUST match the methodName in the DelegateEntry.
The Method Member MUST be of the following format.
Format for Member names |
||
---|---|---|
MethodMemberName |
= |
'Method' Index |
Index |
= |
1*('0'-'9') |
For a given DelegateSerializationHolder, the value of the Index MUST start from 0 and MUST increase by 1 for each Method Member. The Index value MUST match the index of the DelegateEntry for the Remote Method in the linked list.<22>