/// <summary> /// Loads the static delegates FromNative / ToNative from CachedMarshalingDelegates<,> /// e.g. CachedMarshalingDelegates<int, BlittableTypeMarshaler<int>>.FromNative / .ToNative /// </summary> private void EmitCachedMarshalingDelegates(ILProcessor processor, ManagedUnrealPropertyInfo propertyInfo, ManagedUnrealMarshalerType marshalerType) { foreach (ManagedUnrealTypeInfoReference genericArg in propertyInfo.GenericArgs) { Type cachedMarshalingDelegatesType = ManagedUnrealTypeInfo.GetCachedMarshalingDelegatesType(marshalerType, genericArg); FieldReference fromNative = assembly.MainModule.ImportEx( ManagedUnrealTypeInfo.GetCachedMarshalingDelegatesDelegate(cachedMarshalingDelegatesType, true)); FieldReference toNative = assembly.MainModule.ImportEx( ManagedUnrealTypeInfo.GetCachedMarshalingDelegatesDelegate(cachedMarshalingDelegatesType, false)); processor.Emit(OpCodes.Ldsfld, fromNative); processor.Emit(OpCodes.Ldsfld, toNative); } }