public static BaseReflectedFieldNode GetFieldNode(FieldInfo targetField)
        {
            ParametresDef paramDef;

            if (!ReflectedNodesHelper.InitParams(targetField, out paramDef))
            {
                return(null);
            }
#if !NET_STANDARD_2_0 && (UNITY_EDITOR || (!ENABLE_IL2CPP && (UNITY_STANDALONE || UNITY_ANDROID || UNITY_WSA)))
            var jit = new JitFieldNode();
            if (jit.Init(targetField, paramDef))
            {
                return(jit);
            }
#endif
            if (OnGetAotReflectedFieldNode != null)
            {
                var eventAot = OnGetAotReflectedFieldNode(targetField);
                if (eventAot != null && eventAot.Init(targetField, paramDef))
                {
                    return(eventAot);
                }
            }
            var aot = new PureReflectedFieldNode();
            return(aot.Init(targetField, paramDef) ? aot : null);
        }
        public static BaseReflectedMethodNode GetMethodNode(MethodInfo targetMethod, ReflectedMethodRegistrationOptions options)
        {
            ParametresDef paramDef;

            if (!ReflectedNodesHelper.InitParams(targetMethod, out paramDef))
            {
                return(null);
            }
#if !NET_STANDARD_2_0 && (UNITY_EDITOR || (!ENABLE_IL2CPP && (UNITY_STANDALONE || UNITY_ANDROID || UNITY_WSA)))
            var jit = new JitMethodNode();
            jit.options = options;
            if (jit.Init(targetMethod, paramDef))
            {
                return(jit);
            }
#endif
            if (OnGetAotReflectedMethodNode != null)
            {
                var eventAot = OnGetAotReflectedMethodNode(targetMethod);
                if (eventAot != null)
                {
                    eventAot.options = options;
                    if (eventAot.Init(targetMethod, paramDef))
                    {
                        return(eventAot);
                    }
                }
            }
            var aot = new PureReflectedMethodNode();
            aot.options = options;
            return(aot.Init(targetMethod, paramDef) ? aot : null);
        }
        public static BaseReflectedExtractorNode GetExtractorNode(Type targetType, bool isStatic, MemberInfo[] infos)
        {
            ParametresDef paramsDef;

            if (!ReflectedNodesHelper.InitParams(targetType, isStatic, infos, out paramsDef))
            {
                return(null);
            }
#if UNITY_EDITOR || (!ENABLE_IL2CPP && (UNITY_STANDALONE || UNITY_ANDROID || UNITY_WSA))
            var jit = new JitExtractorNode();
            if (jit.Init(paramsDef, targetType))
            {
                return(jit);
            }
#endif
            if (OnGetAotExtractorNode != null)
            {
                var eventAot = OnGetAotExtractorNode(targetType, isStatic, infos);
                if (eventAot != null && eventAot.Init(paramsDef, targetType))
                {
                    return(eventAot);
                }
            }
            var aot = new PureReflectedExtractorNode();
            return(aot.Init(paramsDef, targetType) ? aot : null);
        }