Пример #1
0
        private static void BindAll()
        {
            foreach (var field in typeof(MemenimScript).GetFields(BindingFlags.Static
                                                                  | BindingFlags.Public
                                                                  | BindingFlags.NonPublic))
            {
                var type = field.FieldType;

                if (!typeof(IMemenimScriptBindable).IsAssignableFrom(type))
                {
                    continue;
                }

                var target = MemenimScriptUtils.GetBindTarget(type);

                if (target == MemenimScriptBindTargetType.Unknown)
                {
                    continue;
                }

                var reference = new MemenimScriptBindReference(field);
                var value     = reference.Value;

                BindReferenceMap[target] = reference;

                BindImplementation(value, MemenimScriptUtils.GetBaseType(value));
            }

            BindSettingsImplementation(ref _settings);
        }
        internal MemenimScriptBindReference(FieldInfo field)
        {
            _field = field;

            Type   = field.FieldType;
            Target = MemenimScriptUtils.GetBindTarget(
                field.FieldType);
        }