Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
ObjectMap.cs
Go to the documentation of this file.
1
using
System.Diagnostics.CodeAnalysis
;
2
3
namespace
System.Runtime.Serialization.Formatters.Binary
;
4
5
internal
sealed
class
ObjectMap
6
{
7
internal
string
_objectName
;
8
9
internal
Type
_objectType
;
10
11
internal
BinaryTypeEnum
[]
_binaryTypeEnumA
;
12
13
internal
object
[]
_typeInformationA
;
14
15
internal
Type
[]
_memberTypes
;
16
17
internal
string
[]
_memberNames
;
18
19
internal
ReadObjectInfo
_objectInfo
;
20
21
internal
bool
_isInitObjectInfo
=
true
;
22
23
internal
ObjectReader
_objectReader
;
24
25
internal
int
_objectId
;
26
27
internal
BinaryAssemblyInfo
_assemblyInfo
;
28
29
internal
ObjectMap
(
string
objectName
, [
DynamicallyAccessedMembers
(
DynamicallyAccessedMemberTypes
.All)]
Type
objectType
,
string
[]
memberNames
,
ObjectReader
objectReader
,
int
objectId
,
BinaryAssemblyInfo
assemblyInfo
)
30
{
31
_objectName
=
objectName
;
32
_objectType
=
objectType
;
33
_memberNames
=
memberNames
;
34
_objectReader
=
objectReader
;
35
_objectId
=
objectId
;
36
_assemblyInfo
=
assemblyInfo
;
37
_objectInfo
=
objectReader
.CreateReadObjectInfo(
objectType
);
38
_memberTypes
=
_objectInfo
.
GetMemberTypes
(
memberNames
,
objectType
);
39
_binaryTypeEnumA
=
new
BinaryTypeEnum
[
_memberTypes
.Length];
40
_typeInformationA
=
new
object
[
_memberTypes
.Length];
41
for
(
int
i = 0; i <
_memberTypes
.Length; i++)
42
{
43
object
typeInformation
;
44
BinaryTypeEnum
parserBinaryTypeInfo
=
BinaryTypeConverter
.
GetParserBinaryTypeInfo
(
_memberTypes
[i],
out
typeInformation
);
45
_binaryTypeEnumA
[i] =
parserBinaryTypeInfo
;
46
_typeInformationA
[i] =
typeInformation
;
47
}
48
}
49
50
[
RequiresUnreferencedCode
(
"Types might be removed"
)]
51
internal
ObjectMap
(
string
objectName
,
string
[]
memberNames
,
BinaryTypeEnum
[]
binaryTypeEnumA
,
object
[]
typeInformationA
,
int
[]
memberAssemIds
,
ObjectReader
objectReader
,
int
objectId
,
BinaryAssemblyInfo
assemblyInfo
,
SizedArray
assemIdToAssemblyTable
)
52
{
53
_objectName
=
objectName
;
54
_memberNames
=
memberNames
;
55
_binaryTypeEnumA
=
binaryTypeEnumA
;
56
_typeInformationA
=
typeInformationA
;
57
_objectReader
=
objectReader
;
58
_objectId
=
objectId
;
59
_assemblyInfo
=
assemblyInfo
;
60
if
(
assemblyInfo
==
null
)
61
{
62
throw
new
SerializationException
(
System
.
SR
.
Format
(
System
.
SR
.
Serialization_Assembly
,
objectName
));
63
}
64
_objectType
=
objectReader
.
GetType
(
assemblyInfo
,
objectName
);
65
_memberTypes
=
new
Type
[
memberNames
.Length];
66
for
(
int
i = 0; i <
memberNames
.Length; i++)
67
{
68
BinaryTypeConverter
.
TypeFromInfo
(
binaryTypeEnumA
[i],
typeInformationA
[i],
objectReader
, (
BinaryAssemblyInfo
)
assemIdToAssemblyTable
[
memberAssemIds
[i]],
out
var
_
,
out
var
_
,
out
var
type
,
out
var
_
);
69
_memberTypes
[i] =
type
;
70
}
71
_objectInfo
=
objectReader
.CreateReadObjectInfo(
_objectType
,
memberNames
,
null
);
72
if
(!
_objectInfo
.
_isSi
)
73
{
74
_objectInfo
.
GetMemberTypes
(
memberNames
,
_objectInfo
.
_objectType
);
75
}
76
}
77
78
internal
ReadObjectInfo
CreateObjectInfo
(
ref
SerializationInfo
si
,
ref
object
[]
memberData
)
79
{
80
if
(
_isInitObjectInfo
)
81
{
82
_isInitObjectInfo
=
false
;
83
_objectInfo
.
InitDataStore
(
ref
si
,
ref
memberData
);
84
return
_objectInfo
;
85
}
86
_objectInfo
.
PrepareForReuse
();
87
_objectInfo
.
InitDataStore
(
ref
si
,
ref
memberData
);
88
return
_objectInfo
;
89
}
90
91
internal
static
ObjectMap
Create
(
string
name, [
DynamicallyAccessedMembers
(
DynamicallyAccessedMemberTypes
.All)]
Type
objectType
,
string
[]
memberNames
,
ObjectReader
objectReader
,
int
objectId
,
BinaryAssemblyInfo
assemblyInfo
)
92
{
93
return
new
ObjectMap
(name,
objectType
,
memberNames
,
objectReader
,
objectId
,
assemblyInfo
);
94
}
95
96
[
RequiresUnreferencedCode
(
"Types might be removed"
)]
97
internal
static
ObjectMap
Create
(
string
name,
string
[]
memberNames
,
BinaryTypeEnum
[]
binaryTypeEnumA
,
object
[]
typeInformationA
,
int
[]
memberAssemIds
,
ObjectReader
objectReader
,
int
objectId
,
BinaryAssemblyInfo
assemblyInfo
,
SizedArray
assemIdToAssemblyTable
)
98
{
99
return
new
ObjectMap
(name,
memberNames
,
binaryTypeEnumA
,
typeInformationA
,
memberAssemIds
,
objectReader
,
objectId
,
assemblyInfo
,
assemIdToAssemblyTable
);
100
}
101
}
System.Runtime.Serialization.Formatters.Binary.BinaryAssemblyInfo
Definition
BinaryAssemblyInfo.cs:6
System.Runtime.Serialization.Formatters.Binary.BinaryTypeConverter.TypeFromInfo
static void TypeFromInfo(BinaryTypeEnum binaryTypeEnum, object typeInformation, ObjectReader objectReader, BinaryAssemblyInfo assemblyInfo, out InternalPrimitiveTypeE primitiveTypeEnum, out string typeString, out Type type, out bool isVariant)
Definition
BinaryTypeConverter.cs:168
System.Runtime.Serialization.Formatters.Binary.BinaryTypeConverter.GetParserBinaryTypeInfo
static BinaryTypeEnum GetParserBinaryTypeInfo(Type type, out object typeInformation)
Definition
BinaryTypeConverter.cs:72
System.Runtime.Serialization.Formatters.Binary.BinaryTypeConverter
Definition
BinaryTypeConverter.cs:6
System.Runtime.Serialization.Formatters.Binary.ObjectMap._memberTypes
Type[] _memberTypes
Definition
ObjectMap.cs:15
System.Runtime.Serialization.Formatters.Binary.ObjectMap._assemblyInfo
BinaryAssemblyInfo _assemblyInfo
Definition
ObjectMap.cs:27
System.Runtime.Serialization.Formatters.Binary.ObjectMap._typeInformationA
object[] _typeInformationA
Definition
ObjectMap.cs:13
System.Runtime.Serialization.Formatters.Binary.ObjectMap._objectName
string _objectName
Definition
ObjectMap.cs:7
System.Runtime.Serialization.Formatters.Binary.ObjectMap.ObjectMap
ObjectMap(string objectName, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type objectType, string[] memberNames, ObjectReader objectReader, int objectId, BinaryAssemblyInfo assemblyInfo)
Definition
ObjectMap.cs:29
System.Runtime.Serialization.Formatters.Binary.ObjectMap._memberNames
string[] _memberNames
Definition
ObjectMap.cs:17
System.Runtime.Serialization.Formatters.Binary.ObjectMap._objectType
Type _objectType
Definition
ObjectMap.cs:9
System.Runtime.Serialization.Formatters.Binary.ObjectMap._objectId
int _objectId
Definition
ObjectMap.cs:25
System.Runtime.Serialization.Formatters.Binary.ObjectMap._objectReader
ObjectReader _objectReader
Definition
ObjectMap.cs:23
System.Runtime.Serialization.Formatters.Binary.ObjectMap.Create
static ObjectMap Create(string name, [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.All)] Type objectType, string[] memberNames, ObjectReader objectReader, int objectId, BinaryAssemblyInfo assemblyInfo)
Definition
ObjectMap.cs:91
System.Runtime.Serialization.Formatters.Binary.ObjectMap.ObjectMap
ObjectMap(string objectName, string[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, object[] typeInformationA, int[] memberAssemIds, ObjectReader objectReader, int objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
Definition
ObjectMap.cs:51
System.Runtime.Serialization.Formatters.Binary.ObjectMap.CreateObjectInfo
ReadObjectInfo CreateObjectInfo(ref SerializationInfo si, ref object[] memberData)
Definition
ObjectMap.cs:78
System.Runtime.Serialization.Formatters.Binary.ObjectMap._objectInfo
ReadObjectInfo _objectInfo
Definition
ObjectMap.cs:19
System.Runtime.Serialization.Formatters.Binary.ObjectMap.Create
static ObjectMap Create(string name, string[] memberNames, BinaryTypeEnum[] binaryTypeEnumA, object[] typeInformationA, int[] memberAssemIds, ObjectReader objectReader, int objectId, BinaryAssemblyInfo assemblyInfo, SizedArray assemIdToAssemblyTable)
Definition
ObjectMap.cs:97
System.Runtime.Serialization.Formatters.Binary.ObjectMap._isInitObjectInfo
bool _isInitObjectInfo
Definition
ObjectMap.cs:21
System.Runtime.Serialization.Formatters.Binary.ObjectMap._binaryTypeEnumA
BinaryTypeEnum[] _binaryTypeEnumA
Definition
ObjectMap.cs:11
System.Runtime.Serialization.Formatters.Binary.ObjectMap
Definition
ObjectMap.cs:6
System.Runtime.Serialization.Formatters.Binary.ObjectReader
Definition
ObjectReader.cs:9
System.Runtime.Serialization.Formatters.Binary.ReadObjectInfo._isSi
bool _isSi
Definition
ReadObjectInfo.cs:21
System.Runtime.Serialization.Formatters.Binary.ReadObjectInfo.PrepareForReuse
void PrepareForReuse()
Definition
ReadObjectInfo.cs:53
System.Runtime.Serialization.Formatters.Binary.ReadObjectInfo._objectType
Type _objectType
Definition
ReadObjectInfo.cs:15
System.Runtime.Serialization.Formatters.Binary.ReadObjectInfo.InitDataStore
void InitDataStore(ref SerializationInfo si, ref object[] memberData)
Definition
ReadObjectInfo.cs:213
System.Runtime.Serialization.Formatters.Binary.ReadObjectInfo.GetMemberTypes
Type[] GetMemberTypes(string[] inMemberNames, Type objectType)
Definition
ReadObjectInfo.cs:284
System.Runtime.Serialization.Formatters.Binary.ReadObjectInfo
Definition
ReadObjectInfo.cs:9
System.Runtime.Serialization.Formatters.Binary.SizedArray
Definition
SizedArray.cs:4
System.Runtime.Serialization.SerializationException
Definition
SerializationException.cs:8
System.Runtime.Serialization.SerializationInfo
Definition
SerializationInfo.cs:7
System.SR.Format
static string Format(string resourceFormat, object p1)
Definition
SR.cs:118
System.SR.Serialization_Assembly
static string Serialization_Assembly
Definition
SR.cs:88
System.SR
Definition
SR.cs:7
System.Type.GetType
static ? Type GetType(string typeName, bool throwOnError, bool ignoreCase)
Definition
Type.cs:408
System.Type
Definition
Type.cs:14
System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes
DynamicallyAccessedMemberTypes
Definition
DynamicallyAccessedMemberTypes.cs:5
System.Diagnostics.CodeAnalysis
Definition
AllowNullAttribute.cs:1
System.Runtime.Serialization.Formatters.Binary.BinaryTypeEnum
BinaryTypeEnum
Definition
BinaryTypeEnum.cs:4
System.Runtime.Serialization.Formatters.Binary
Definition
BinaryArray.cs:1
System.Runtime.Serialization.CollectionKind.Dictionary
@ Dictionary
System.ExceptionArgument.type
@ type
System
Definition
BlockingCollection.cs:8
source
System.Runtime.Serialization.Formatters
System.Runtime.Serialization.Formatters.Binary
ObjectMap.cs
Generated by
1.10.0