예제 #1
0
        public AccessorDictionaryAdaptor(Accessor accessor, Inspector parentInspector) : base(accessor, parentInspector)
        {
            this.accessor = accessor;

            accessor.valueChanged += (previousValue) =>
            {
                if (!accessor.isDictionary)
                {
                    throw new InvalidOperationException("Accessor for dictionary adaptor is not a dictionary: " + accessor);
                }

                if (accessor.value == null)
                {
                    accessor.value = ConstructDictionary();
                }

                newKeyAccessor?.Unlink();

                newValueAccessor?.Unlink();

                newKeyAccessor   = accessor.Lambda("newKey", ConstructKey(), accessor.dictionaryKeyType);
                newValueAccessor = accessor.Lambda("newValue", ConstructValue(), accessor.dictionaryValueType);
            };
        }
예제 #2
0
        public NullableInspector(Accessor accessor) : base(accessor)
        {
            var underlyingType = Nullable.GetUnderlyingType(accessor.definedType);

            underlyingAccessor = accessor.Lambda("__underlying", accessor.value ?? Activator.CreateInstance(underlyingType), underlyingType);
        }