Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ChainSelector()

virtual void System.Runtime.Serialization.SurrogateSelector.ChainSelector ( ISurrogateSelector selector)
inlinevirtual

Implements System.Runtime.Serialization.ISurrogateSelector.

Definition at line 48 of file SurrogateSelector.cs.

49 {
50 if (selector == null)
51 {
52 throw new ArgumentNullException("selector");
53 }
54 if (selector == this)
55 {
56 throw new SerializationException(System.SR.Serialization_SurrogateCycle);
57 }
58 if (!HasCycle(selector))
59 {
61 }
62 ISurrogateSelector nextSelector = selector.GetNextSelector();
63 ISurrogateSelector surrogateSelector = selector;
64 while (nextSelector != null && nextSelector != this)
65 {
67 nextSelector = nextSelector.GetNextSelector();
68 }
69 if (nextSelector == this)
70 {
72 }
74 ISurrogateSelector surrogateSelector2 = selector;
75 while (nextSelector != null)
76 {
78 if (nextSelector == null)
79 {
80 break;
81 }
83 {
85 }
89 {
91 }
92 }
93 ISurrogateSelector nextSelector2 = _nextSelector;
95 if (nextSelector2 != null)
96 {
97 surrogateSelector.ChainSelector(nextSelector2);
98 }
99 }
static bool HasCycle(ISurrogateSelector selector)
static string Serialization_SurrogateCycle
Definition SR.cs:136
static string Serialization_SurrogateCycleInArgument
Definition SR.cs:134
Definition SR.cs:7

References System.Runtime.Serialization.SurrogateSelector._nextSelector, System.Runtime.Serialization.Dictionary, System.Runtime.Serialization.SurrogateSelector.GetNextSelector(), System.Runtime.Serialization.SurrogateSelector.HasCycle(), System.SR.Serialization_SurrogateCycle, and System.SR.Serialization_SurrogateCycleInArgument.