Пример #1
0
        private EditorMember GetElement <T>(List <EditorMember> elements, List <T> source, int index, int id)
        {
            if (index >= elements.Count)
            {
                var element = EditorMember.WrapIListElement(
                    @elementName: string.Empty,
                    @elementType: typeof(T),
                    @elementId: RuntimeHelper.CombineHashCodes(id, index),
                    @attributes: attributes
                    );
                element.InitializeIList(source, index, rawTarget, unityTarget);
                elements.Add(element);
                return(element);
            }

            try
            {
                var e = elements[index];
                e.InitializeIList(source, index, rawTarget, unityTarget);
                return(e);
            }
            catch (ArgumentOutOfRangeException)
            {
                Log("DictionaryDrawer: Accessing element out of range. Index: {0} Count {1}. This shouldn't really happen. Please report it with information on how to replicate it".FormatWith(index, elements.Count));
                return(null);
            }
        }
Пример #2
0
        private EditorMember GetElement(int index)
        {
            if (index >= _elements.Count)
            {
                var element = EditorMember.WrapIListElement(
                    @attributes: _perItemAttributes,
                    @elementName: string.Empty,
                    @elementType: typeof(TElement),
                    @elementId: RuntimeHelper.CombineHashCodes(id, index)
                    );

                element.InitializeIList(memberValue, index, rawTarget, unityTarget);
                _elements.Add(element);
                return(element);
            }

            var e = _elements[index];

            e.InitializeIList(memberValue, index, rawTarget, unityTarget);
            return(e);
        }