Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
Activator.cs
Go to the documentation of this file.
10
11namespace System;
12
13public static class Activator
14{
15 [DebuggerHidden]
16 [DebuggerStepThrough]
17 public static object? CreateInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors)] Type type, BindingFlags bindingAttr, Binder? binder, object?[]? args, CultureInfo? culture)
18 {
19 return CreateInstance(type, bindingAttr, binder, args, culture, null);
20 }
21
22 [DebuggerHidden]
23 [DebuggerStepThrough]
24 public static object? CreateInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type type, params object?[]? args)
25 {
26 return CreateInstance(type, BindingFlags.Instance | BindingFlags.Public | BindingFlags.CreateInstance, null, args, null, null);
27 }
28
29 [DebuggerHidden]
30 [DebuggerStepThrough]
31 public static object? CreateInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type type, object?[]? args, object?[]? activationAttributes)
32 {
33 return CreateInstance(type, BindingFlags.Instance | BindingFlags.Public | BindingFlags.CreateInstance, null, args, null, activationAttributes);
34 }
35
36 [DebuggerHidden]
37 [DebuggerStepThrough]
38 public static object? CreateInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)] Type type)
39 {
40 return CreateInstance(type, nonPublic: false);
41 }
42
43 [RequiresUnreferencedCode("Type and its constructor could be removed")]
44 public static ObjectHandle? CreateInstanceFrom(string assemblyFile, string typeName)
45 {
46 return CreateInstanceFrom(assemblyFile, typeName, ignoreCase: false, BindingFlags.Instance | BindingFlags.Public | BindingFlags.CreateInstance, null, null, null, null);
47 }
48
49 [RequiresUnreferencedCode("Type and its constructor could be removed")]
50 public static ObjectHandle? CreateInstanceFrom(string assemblyFile, string typeName, object?[]? activationAttributes)
51 {
52 return CreateInstanceFrom(assemblyFile, typeName, ignoreCase: false, BindingFlags.Instance | BindingFlags.Public | BindingFlags.CreateInstance, null, null, null, activationAttributes);
53 }
54
55 [RequiresUnreferencedCode("Type and its constructor could be removed")]
56 public static ObjectHandle? CreateInstanceFrom(string assemblyFile, string typeName, bool ignoreCase, BindingFlags bindingAttr, Binder? binder, object?[]? args, CultureInfo? culture, object?[]? activationAttributes)
57 {
58 Assembly assembly = Assembly.LoadFrom(assemblyFile);
59 Type type = assembly.GetType(typeName, throwOnError: true, ignoreCase);
60 object obj = CreateInstance(type, bindingAttr, binder, args, culture, activationAttributes);
61 if (obj == null)
62 {
63 return null;
64 }
65 return new ObjectHandle(obj);
66 }
67
68 public static object? CreateInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors)] Type type, BindingFlags bindingAttr, Binder? binder, object?[]? args, CultureInfo? culture, object?[]? activationAttributes)
69 {
70 if ((object)type == null)
71 {
72 throw new ArgumentNullException("type");
73 }
74 if (type is TypeBuilder)
75 {
77 }
78 if ((bindingAttr & (BindingFlags)255) == 0)
79 {
80 bindingAttr |= BindingFlags.Instance | BindingFlags.Public | BindingFlags.CreateInstance;
81 }
82 if (activationAttributes != null && activationAttributes.Length != 0)
83 {
85 }
86 if (type.UnderlyingSystemType is RuntimeType runtimeType)
87 {
88 return runtimeType.CreateInstanceImpl(bindingAttr, binder, args, culture);
89 }
90 throw new ArgumentException(SR.Arg_MustBeType, "type");
91 }
92
93 [RequiresUnreferencedCode("Type and its constructor could be removed")]
94 public static ObjectHandle? CreateInstance(string assemblyName, string typeName)
95 {
96 StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;
97 return CreateInstanceInternal(assemblyName, typeName, ignoreCase: false, BindingFlags.Instance | BindingFlags.Public | BindingFlags.CreateInstance, null, null, null, null, ref stackMark);
98 }
99
100 [RequiresUnreferencedCode("Type and its constructor could be removed")]
101 public static ObjectHandle? CreateInstance(string assemblyName, string typeName, bool ignoreCase, BindingFlags bindingAttr, Binder? binder, object?[]? args, CultureInfo? culture, object?[]? activationAttributes)
102 {
103 StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;
104 return CreateInstanceInternal(assemblyName, typeName, ignoreCase, bindingAttr, binder, args, culture, activationAttributes, ref stackMark);
105 }
106
107 [RequiresUnreferencedCode("Type and its constructor could be removed")]
108 public static ObjectHandle? CreateInstance(string assemblyName, string typeName, object?[]? activationAttributes)
109 {
110 StackCrawlMark stackMark = StackCrawlMark.LookForMyCaller;
111 return CreateInstanceInternal(assemblyName, typeName, ignoreCase: false, BindingFlags.Instance | BindingFlags.Public | BindingFlags.CreateInstance, null, null, null, activationAttributes, ref stackMark);
112 }
113
114 public static object? CreateInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors)] Type type, bool nonPublic)
115 {
116 return CreateInstance(type, nonPublic, wrapExceptions: true);
117 }
118
119 internal static object CreateInstance(Type type, bool nonPublic, bool wrapExceptions)
120 {
121 if ((object)type == null)
122 {
123 throw new ArgumentNullException("type");
124 }
125 if (!(type.UnderlyingSystemType is RuntimeType runtimeType))
126 {
127 throw new ArgumentException(SR.Arg_MustBeType, "type");
128 }
129 return runtimeType.CreateInstanceDefaultCtor(!nonPublic, wrapExceptions);
130 }
131
132 [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2026:RequiresUnreferencedCode", Justification = "Implementation detail of Activator that linker intrinsically recognizes")]
133 [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2072:UnrecognizedReflectionPattern", Justification = "Implementation detail of Activator that linker intrinsically recognizes")]
134 [UnconditionalSuppressMessage("ReflectionAnalysis", "IL2096:UnrecognizedReflectionPattern", Justification = "Implementation detail of Activator that linker intrinsically recognizes")]
135 private static ObjectHandle CreateInstanceInternal(string assemblyString, string typeName, bool ignoreCase, BindingFlags bindingAttr, Binder binder, object[] args, CultureInfo culture, object[] activationAttributes, ref StackCrawlMark stackMark)
136 {
137 Assembly assembly;
138 if (assemblyString == null)
139 {
140 assembly = Assembly.GetExecutingAssembly(ref stackMark);
141 }
142 else
143 {
144 AssemblyName assemblyName = new AssemblyName(assemblyString);
146 }
147 Type type = assembly.GetType(typeName, throwOnError: true, ignoreCase);
148 object obj = CreateInstance(type, bindingAttr, binder, args, culture, activationAttributes);
149 if (obj == null)
150 {
151 return null;
152 }
153 return new ObjectHandle(obj);
154 }
155
156 [Intrinsic]
157 public static T CreateInstance<[DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)] T>()
158 {
159 return (T)((RuntimeType)typeof(T)).CreateInstanceOfT();
160 }
161
162 private static T CreateDefaultInstance<T>() where T : struct
163 {
164 return default(T);
165 }
166}
static ? ObjectHandle CreateInstance(string assemblyName, string typeName, object?[]? activationAttributes)
Definition Activator.cs:108
static ? ObjectHandle CreateInstance(string assemblyName, string typeName)
Definition Activator.cs:94
static T CreateDefaultInstance< T >()
Definition Activator.cs:162
static ? ObjectHandle CreateInstanceFrom(string assemblyFile, string typeName, object?[]? activationAttributes)
Definition Activator.cs:50
static ? ObjectHandle CreateInstanceFrom(string assemblyFile, string typeName, bool ignoreCase, BindingFlags bindingAttr, Binder? binder, object?[]? args, CultureInfo? culture, object?[]? activationAttributes)
Definition Activator.cs:56
static ? object CreateInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type type, params object?[]? args)
Definition Activator.cs:24
static ? object CreateInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors|DynamicallyAccessedMemberTypes.NonPublicConstructors)] Type type, bool nonPublic)
Definition Activator.cs:114
static ? ObjectHandle CreateInstance(string assemblyName, string typeName, bool ignoreCase, BindingFlags bindingAttr, Binder? binder, object?[]? args, CultureInfo? culture, object?[]? activationAttributes)
Definition Activator.cs:101
static ? ObjectHandle CreateInstanceFrom(string assemblyFile, string typeName)
Definition Activator.cs:44
static ? object CreateInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicParameterlessConstructor)] Type type)
Definition Activator.cs:38
static object CreateInstance(Type type, bool nonPublic, bool wrapExceptions)
Definition Activator.cs:119
static ? object CreateInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors|DynamicallyAccessedMemberTypes.NonPublicConstructors)] Type type, BindingFlags bindingAttr, Binder? binder, object?[]? args, CultureInfo? culture, object?[]? activationAttributes)
Definition Activator.cs:68
static ? object CreateInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors|DynamicallyAccessedMemberTypes.NonPublicConstructors)] Type type, BindingFlags bindingAttr, Binder? binder, object?[]? args, CultureInfo? culture)
Definition Activator.cs:17
static ObjectHandle CreateInstanceInternal(string assemblyString, string typeName, bool ignoreCase, BindingFlags bindingAttr, Binder binder, object[] args, CultureInfo culture, object[] activationAttributes, ref StackCrawlMark stackMark)
Definition Activator.cs:135
static ? object CreateInstance([DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)] Type type, object?[]? args, object?[]? activationAttributes)
Definition Activator.cs:31
virtual ? Type GetType(string name)
Definition Assembly.cs:305
static Assembly LoadFrom(string assemblyFile)
Definition Assembly.cs:588
static RuntimeAssembly GetExecutingAssembly(ref StackCrawlMark stackMark)
Definition Assembly.cs:198
static RuntimeAssembly InternalLoad(string assemblyName, ref StackCrawlMark stackMark, AssemblyLoadContext assemblyLoadContext=null)
static ? AssemblyLoadContext CurrentContextualReflectionContext
static string NotSupported_CreateInstanceWithTypeBuilder
Definition SR.cs:1664
static string Arg_MustBeType
Definition SR.cs:302
static string NotSupported_ActivAttr
Definition SR.cs:1648
Definition SR.cs:7