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

◆ ConvertToNative()

IntPtr System.StubHelpers.AsAnyMarshaler.ConvertToNative ( object pManagedHome,
int dwFlags )
inlinepackage

Definition at line 223 of file AsAnyMarshaler.cs.

224 {
225 if (pManagedHome == null)
226 {
227 return IntPtr.Zero;
228 }
229 if (pManagedHome is ArrayWithOffset)
230 {
231 throw new ArgumentException(SR.Arg_MarshalAsAnyRestriction);
232 }
233 if (pManagedHome.GetType().IsArray)
234 {
235 return ConvertArrayToNative(pManagedHome, dwFlags);
236 }
237 if (pManagedHome is string pManagedHome2)
238 {
239 return ConvertStringToNative(pManagedHome2, dwFlags);
240 }
241 if (pManagedHome is StringBuilder pManagedHome3)
242 {
243 return ConvertStringBuilderToNative(pManagedHome3, dwFlags);
244 }
245 if (pManagedHome.GetType().IsLayoutSequential || pManagedHome.GetType().IsExplicitLayout)
246 {
247 return ConvertLayoutToNative(pManagedHome, dwFlags);
248 }
249 throw new ArgumentException(SR.Arg_NDirectBadObject);
250 }
unsafe IntPtr ConvertArrayToNative(object pManagedHome, int dwFlags)
unsafe IntPtr ConvertLayoutToNative(object pManagedHome, int dwFlags)
static unsafe IntPtr ConvertStringToNative(string pManagedHome, int dwFlags)
unsafe IntPtr ConvertStringBuilderToNative(StringBuilder pManagedHome, int dwFlags)

References System.SR.Arg_MarshalAsAnyRestriction, System.SR.Arg_NDirectBadObject, System.StubHelpers.AsAnyMarshaler.ConvertArrayToNative(), System.StubHelpers.AsAnyMarshaler.ConvertLayoutToNative(), System.StubHelpers.AsAnyMarshaler.ConvertStringBuilderToNative(), System.StubHelpers.AsAnyMarshaler.ConvertStringToNative(), and System.IntPtr.Zero.

Referenced by System.Runtime.InteropServices.Marshal.ReadValueSlow< T >(), and System.Runtime.InteropServices.Marshal.WriteValueSlow< T >().