Attribute Util : Attribute « XML « C# / C Sharp

Home
C# / C Sharp
1.2D Graphics
2.Class Interface
3.Collections Data Structure
4.Components
5.Data Types
6.Database ADO.net
7.Date Time
8.Design Patterns
9.Development Class
10.Event
11.File Stream
12.Generics
13.GUI Windows Form
14.Internationalization I18N
15.Language Basics
16.LINQ
17.Network
18.Office
19.Reflection
20.Regular Expressions
21.Security
22.Services Event
23.Thread
24.Web Services
25.Windows
26.Windows Presentation Foundation
27.XML
28.XML LINQ
C# / C Sharp » XML » Attribute 




Attribute Util
 

using System;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;

internal class AttributedTypesUtility
{
    internal static List<Type> GetTypesWithAttribute(Type attributeType)
    {
        var typesWithAttribute = new List<Type>();
        Assembly[] assemblies = AppDomain.CurrentDomain.GetAssemblies();

        foreach (Assembly assembly in assemblies)
        {
            IEnumerable<Type> typesWithAttributeInAssembly = GetTypesWithAttributeInAssembly(assembly, attributeType);
            typesWithAttribute.AddRange(typesWithAttributeInAssembly);
        }

        return typesWithAttribute;
    }

    private static IEnumerable<Type> GetTypesWithAttributeInAssembly(Assembly assembly, Type attributeType)
    {
        Type[] types = assembly.GetTypes();
        return types.Where(type => TypeHasAttribute(type, attributeType)).ToList();
    }

    private static bool TypeHasAttribute(Type type, Type attributeType)
    {
        bool typeHasAttribute = false;
        object[] attributes = GetAttributes(type);

        foreach (object attribute in attributes)
        {
            if (attributeType.IsAssignableFrom(attribute.GetType()))
                typeHasAttribute = true;
        }

        return typeHasAttribute;
    }

    private static object[] GetAttributes(Type type)
    {
        return type.GetCustomAttributes(true); ;
    }

    internal static Attribute GetAttribute(Type type, Type attributeType)
    {
        Attribute attribute = null;

        object[] attributes = type.GetCustomAttributes(true);
        foreach (object attributeInType in attributes)
        {
            if (attributeType.IsAssignableFrom(attributeInType.GetType()))
                attribute = (Attribute)attributeInType;
        }

        return attribute;
    }
}

   
  














Related examples in the same category
1.Set Attribute Value
2.Get Attribute Value
3.Get Int value from xml attribute
4.Get Attribute value (2)
5.Get attribute or return default value
6.Get Bool Attribute Or Throw exception
7.Get attribute value and convert to integer type
8.Get attribute value and convert to integer type or throw exception
9.Get Attribute and return Int64
10.Get Attribute and return Int64 or throw exception
11.Adds an XmlAttribute to a XmlNode
12.Get boolean value if an attribute is 1 or true
13.Attempts to get and cast attribute from an XmlElement
14.Attempts to get and convert an attribute from an XmlElement
15.Gets a string from an attribute or node.
16.Remove all the xml namespaces (xmlns) attributes in the xml string
17.Get Attribute With Conversion
18.Find a single Attribute of the type 'attributeType' from the supplied class
19.Create Xml Attribute, Node
20.Create Attribute, Text Element, Image Element,Read Image Element
21.Find and get Attribute value
22.Finds an attribute with the given name in the given XML node and returns the attribute of the value.
23.Parse Attribute
24.Get attribute value (3)
25.Get int type attribute value
26.Get attribute value or throw exception
27.Read an XML file from the xml element and the xml attribute
28.Create and set attribute
29.Adds a new attribute to the given target element.
30.Get Text Attribute
31.Get Int Attribute
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.