コード例 #1
0
        /// <summary>
        /// Creates a <see cref="YamlMappingNode" /> containing a key-value pair for each property of the specified object.
        /// </summary>
        public static YamlMappingNode FromObject(object mapping)
        {
            if (mapping == null)
            {
                throw new ArgumentNullException(nameof(mapping));
            }

            var result = new YamlMappingNode();

            foreach (var property in mapping.GetType().GetPublicProperties())
            {
                // CanRead == true => GetGetMethod() != null
                if (property.CanRead && property.GetGetMethod(false) !.GetParameters().Length == 0)
                {
                    var value = property.GetValue(mapping, null);
                    if (!(value is YamlNode valueNode))
                    {
                        var valueAsString = Convert.ToString(value);
                        valueNode = valueAsString ?? string.Empty;
                    }
                    result.Add(property.Name, valueNode);
                }
            }
            return(result);
        }
コード例 #2
0
        public static YamlMappingNode FromObject(object mapping)
        {
            if (mapping == null)
            {
                throw new ArgumentNullException("mapping");
            }
            YamlMappingNode yamlMappingNode = new YamlMappingNode();

            foreach (PropertyInfo publicProperty in mapping.GetType().GetPublicProperties())
            {
                if (publicProperty.CanRead && publicProperty.GetGetMethod().GetParameters().Length == 0)
                {
                    object   value  = publicProperty.GetValue(mapping, null);
                    YamlNode value2 = (value as YamlNode) ?? ((YamlNode)Convert.ToString(value));
                    yamlMappingNode.Add(publicProperty.Name, value2);
                }
            }
            return(yamlMappingNode);
        }
コード例 #3
0
        /// <summary>
        /// Creates a <see cref="YamlMappingNode" /> containing a key-value pair for each property of the specified object.
        /// </summary>
        public static YamlMappingNode FromObject(object mapping)
        {
            if (mapping == null)
            {
                throw new ArgumentNullException("mapping");
            }

            var result = new YamlMappingNode();

            foreach (var property in mapping.GetType().GetPublicProperties())
            {
                if (property.CanRead && property.GetGetMethod().GetParameters().Length == 0)
                {
                    var value     = property.GetValue(mapping, null);
                    var valueNode = (value as YamlNode) ?? (Convert.ToString(value));
                    result.Add(property.Name, valueNode);
                }
            }
            return(result);
        }