private T GetCommonMetadata <T>(out bool wasCreated)
            where T : new()
        {
            object val;

            if (_metadata.TryGetValue(typeof(T), out val) == false)
            {
                val = new T();
                _metadata[typeof(T)] = val;
                wasCreated           = true;
            }
            else
            {
                wasCreated = false;
            }

            return((T)val);
        }
        /// <summary>
        /// Get a child metadata instance for the given identifier. This is useful for general
        /// classes and structs where an object has a set of discrete named fields or properties.
        /// </summary>
        public fiGraphMetadataChild Enter(string childIdentifier)
        {
            fiGraphMetadata metadata;

            if (_childrenString.TryGetValue(childIdentifier, out metadata) == false)
            {
                metadata = new fiGraphMetadata(this, childIdentifier);
                _childrenString[childIdentifier] = metadata;
            }

            return(new fiGraphMetadataChild {
                Metadata = metadata
            });
        }
Exemplo n.º 3
0
        /// <summary>
        /// Get a child metadata instance for the given identifier. This is
        /// useful for collections where each item maps to a unique index.
        /// </summary>
        public fiGraphMetadataChild Enter(int childIdentifier, object context)
        {
            fiGraphMetadata metadata;

            if (_childrenInt.TryGetValue(childIdentifier, out metadata) == false)
            {
                metadata = new fiGraphMetadata(this, childIdentifier.ToString());
                _childrenInt[childIdentifier] = metadata;
            }
            metadata.Context = context;

            return(new fiGraphMetadataChild {
                Metadata = metadata
            });
        }