예제 #1
0
        public ITweakable RegisterTweakable <T>(TweakableInfo <T> info, FieldInfo fieldInfo, object instance = null)
        {
            ITweakable tweakable = TweakableFactory.MakeTweakableFromInfo(info, fieldInfo, instance);

            RegisterTweakable(tweakable);
            return(tweakable);
        }
예제 #2
0
        public static ITweakable MakeTweakableFromInfo <T>(TweakableInfo <T> info, out object virtualFieldRef)
        {
            VirtualField <T> virtualField = new VirtualField <T>();
            ITweakable       result       = new BaseTweakable <T>(info, virtualField);

            virtualFieldRef = virtualField;
            return(result);
        }
예제 #3
0
 private BaseTweakable(TweakableInfo <T> info, MethodInfo setter, MethodInfo getter, Assembly assembly, WeakReference instance, bool isPublic)
     : this(info, assembly, instance, isPublic)
 {
     Setter = setter;
     Getter = getter;
     ValidateTweakableType();
     CreateComponents();
 }
예제 #4
0
 public BaseTweakable(TweakableInfo <T> info, VirtualField <T> field)
     : this(info, Assembly.GetCallingAssembly(), new WeakReference(field), isPublic : false)
 {
     Setter = field.Setter.Method;
     Getter = field.Getter.Method;
     ValidateTweakableType();
     CreateComponents();
 }
예제 #5
0
 private BaseTweakable(TweakableInfo <T> info, VirtualProperty <T> property, Assembly assembly, bool isPublic)
     : this(info, assembly, new WeakReference(property), isPublic)
 {
     virtualProperty = property;
     Setter          = property.Setter.Method;
     Getter          = property.Getter.Method;
     ValidateTweakableType();
     CreateComponents();
 }
예제 #6
0
        public static ITweakable MakeTweakableFromInfo <T>(TweakableInfo <T> info, FieldInfo fieldInfo, object instance)
        {
            if (typeof(T) != fieldInfo.FieldType)
            {
                return(null);
            }
            WeakReference instance2 = ((instance != null) ? new WeakReference(instance) : null);

            return(new BaseTweakable <T>(info, fieldInfo, instance2));
        }
예제 #7
0
        public static ITweakable MakeTweakableFromInfo <T>(TweakableInfo <T> info, PropertyInfo propertyInfo, object instance)
        {
            if (typeof(T) != propertyInfo.PropertyType)
            {
                return(null);
            }
            WeakReference instance2 = ((instance != null) ? new WeakReference(instance) : null);

            return(new BaseTweakable <T>(info, propertyInfo, instance2));
        }
예제 #8
0
 public ToggleTweakable(BaseTweakable <T> baseTweakable)
 {
     this.baseTweakable = baseTweakable;
     tweakableInfo      = baseTweakable.TweakableInfo;
     currentIndex       = GetIndexOfValue(baseTweakable.GetValue());
 }
예제 #9
0
 public BaseTweakable(TweakableInfo <T> info, FieldInfo field, WeakReference instance)
     : this(info, new VirtualProperty <T>(field, instance), field.ReflectedType.Assembly, field.IsPublic)
 {
 }
예제 #10
0
 public BaseTweakable(TweakableInfo <T> info, MethodInfo setter, MethodInfo getter, WeakReference instance)
     : this(info, setter, getter, setter.ReflectedType.Assembly, instance, setter.IsPublic || getter.IsPublic)
 {
 }
예제 #11
0
 public BaseTweakable(TweakableInfo <T> info, PropertyInfo property, WeakReference instance)
     : this(info, property.GetSetMethod(nonPublic : true), property.GetGetMethod(nonPublic : true), property.ReflectedType.Assembly, instance, property.GetAccessors().Length > 0)
 {
 }
예제 #12
0
 private BaseTweakable(TweakableInfo <T> info, Assembly assembly, WeakReference instance, bool isPublic)
     : base(info, assembly, instance, isPublic)
 {
     TweakableInfo = info;
     TweakableType = typeof(T);
 }