Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
◆
WriteLocalDecl()
void
System.Xml.Serialization.ReflectionAwareILGen.WriteLocalDecl
(
string
variableName
,
SourceInfo
initValue
)
inline
package
Definition at line
165
of file
ReflectionAwareILGen.cs
.
166
{
167
Type
type
=
initValue
.Type;
168
LocalBuilder
localBuilder
=
initValue
.ILG.DeclareOrGetLocal(
type
,
variableName
);
169
if
(
initValue
.Source !=
null
)
170
{
171
if
(
initValue
==
"null"
)
172
{
173
initValue
.ILG.Load(
null
);
174
}
175
else
if
(
initValue
.Arg.StartsWith(
"o.@"
,
StringComparison
.Ordinal))
176
{
177
initValue
.ILG.LoadMember(
initValue
.ILG.GetLocal(
"o"
),
initValue
.MemberInfo);
178
}
179
else
if
(
initValue
.Source.EndsWith(
']'
))
180
{
181
initValue
.Load(
initValue
.Type);
182
}
183
else
if
(
initValue
.Source ==
"fixup.Source"
||
initValue
.Source ==
"e.Current"
)
184
{
185
string
[]
array
=
initValue
.Source.Split(
'.'
);
186
object
variable
=
initValue
.ILG.GetVariable(
array
[0]);
187
PropertyInfo
property
=
initValue
.ILG.GetVariableType(
variable
).GetProperty(
array
[1]);
188
initValue
.ILG.LoadMember(
variable
,
property
);
189
initValue
.ILG.ConvertValue(
property
.PropertyType,
localBuilder
.LocalType);
190
}
191
else
192
{
193
object
variable2
=
initValue
.ILG.GetVariable(
initValue
.Arg);
194
initValue
.ILG.Load(
variable2
);
195
initValue
.ILG.ConvertValue(
initValue
.ILG.GetVariableType(
variable2
),
localBuilder
.LocalType);
196
}
197
initValue
.ILG.Stloc(
localBuilder
);
198
}
199
}
System.Collections.Generic.Dictionary
Definition
Dictionary.cs:14
System.Reflection.Emit.LocalBuilder
Definition
LocalBuilder.cs:4
System.Reflection.PropertyInfo
Definition
PropertyInfo.cs:8
System.Xml.Serialization.SoapAttributeFlags.Type
@ Type
System.ExceptionArgument.type
@ type
System.ExceptionArgument.array
@ array
System.StringComparison
StringComparison
Definition
StringComparison.cs:4
References
System.array
, and
System.type
.
System
Xml
Serialization
ReflectionAwareILGen
Generated by
1.10.0