Get attribute value and convert to other type : Attributes « Reflection « C# / C Sharp






Get attribute value and convert to other type

      
using System;
using System.Linq;
using System.Xml.Linq;
namespace DACU.Tools
{
    static class XmlUtils
    {

        public static bool? NodeValueToBool(XElement node)
        {
            if (node == null) return null;
            return node.Value == "1" ? (bool?)true : (node.Value == "0" ? (bool?)false : null);
        }

        public static int[] NodeValueToArray(XElement node)
        {
            if (node == null || node.IsEmpty) return null;
            var ints = node.Elements("lid");
            return ints == null ?
                null
                :
                ints.Where(elem => !String.IsNullOrWhiteSpace(elem.Value)).Select(elem => Convert.ToInt32(elem.Value)).ToArray();
        }

        public static string GetStringFromAttribute(this XElement element, string attributeName)
        {
            XAttribute att = element.Attribute(attributeName);
            return att == null || att.Value == null ? "" : att.Value;
        }

        public static int GetIntFromAttribute(this XElement element, string attributeName)
        {
            XAttribute att = element.Attribute(attributeName);
            if (att == null) return -1;
            int value;
            if (int.TryParse(att.Value, out value))
                return value;
            return -1;
        }

        public static double GetDoubleFromAttribute(this XElement element, string attributeName)
        {
            XAttribute att = element.Attribute(attributeName);
            if (att == null) return double.NaN;
            double value;
            if (double.TryParse(att.Value, out value))
                return value;
            return double.NaN;
        }

        public static float GetFloatFromAttribute(this XElement element, string attributeName)
        {
            XAttribute att = element.Attribute(attributeName);
            if (att == null) return float.NaN;
            float value;
            if (float.TryParse(att.Value, out value))
                return value;
            return float.NaN;
        }

        public static bool GetBoolFromAttribute(this XElement element, string attributeName)
        {
            XAttribute att = element.Attribute(attributeName);
            if (att == null) return false;
            bool value;
            if (bool.TryParse(att.Value, out value))
                return value;
            return false;
        }

    }
}

   
    
    
    
    
    
  








Related examples in the same category

1.Use GetCustomAttribute
2.Attributes:Reflecting on AttributesAttributes:Reflecting on Attributes
3.Displaying attributes for a class.
4.Specifies flags that describe the attributes of a field.Specifies flags that describe the attributes of a field.
5.Defines a company name custom attribute for an assembly manifest.
6.Defines a copyright custom attribute for an assembly manifest.
7.Represents the base class for custom attributes.
8.Retrieves a custom attribute applied to a specified assembly.
9.Retrieves a custom attribute applied to a member of a type.
10.Get a custom attribute applied to a member of a type.
11.Get an array of the custom attributes applied to an assembly. A parameter specifies the assembly.
12.Get an array of the custom attributes applied to a method parameter.
13.Attribute.IsDefaultAttribute
14.Attribute.IsDefined
15.Determines whether any custom attributes are applied to an assembly.
16.Determines whether any custom attributes are applied to a member of a type.
17.Determines whether any custom attributes of a specified type are applied to a module.
18.Determines whether any custom attributes are applied to a method parameter.
19.Indicates to compilers that a method call or attribute should be ignored unless a specified conditional compilation symbol is defined.
20.Get member attribute
21.Attributed Types Utility
22.Retrieve Method Attribute Only
23.Retrieve Field Attribute List
24.Get Types With Attribute
25.Get Methods With Attribute