예제 #1
0
        /// <summary>
        /// Checks whether a property exists in the Property collection
        /// or as a property on the instance
        /// </summary>
        /// <param name="propertyName"></param>
        /// <param name="includeInstanceProperties"></param>
        /// <returns></returns>
        public bool Contains(string propertyName, bool includeInstanceProperties = false)
        {
            if (Properties.ContainsKey(propertyName))
            {
                return(true);
            }

            if (includeInstanceProperties && _instance != null)
            {
                return(FastProperty.GetProperties(_instance).ContainsKey(propertyName));
            }

            return(false);
        }
예제 #2
0
        /// <summary>
        /// Returns all properties
        /// </summary>
        /// <param name="includeInstanceProperties"></param>
        /// <returns></returns>
        public IEnumerable <KeyValuePair <string, object> > GetProperties(bool includeInstanceProperties = false)
        {
            foreach (var key in this.Properties.Keys)
            {
                yield return(new KeyValuePair <string, object>(key, this.Properties[key]));
            }

            if (includeInstanceProperties && _instance != null)
            {
                foreach (var prop in FastProperty.GetProperties(_instance).Values)
                {
                    if (!this.Properties.ContainsKey(prop.Name))
                    {
                        yield return(new KeyValuePair <string, object>(prop.Name, prop.GetValue(_instance)));
                    }
                }
            }
        }