Answers for "c# get all fields and child fields with reflection"

C#
1

C# get all child classes of a class

//through reflection
using System.Reflection;

//as a reusable method/function
Type[] GetInheritedClasses(Type MyType) 
{
  	//if you want the abstract classes drop the !TheType.IsAbstract but it is probably to instance so its a good idea to keep it.
	return Assembly.GetAssembly(MyType).GetTypes().Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(MyType));
}

//or as a selection of a type in code.
Type[] ChildClasses Assembly.GetAssembly(typeof(YourType)).GetTypes().Where(myType => myType.IsClass && !myType.IsAbstract && myType.IsSubclassOf(typeof(YourType))));

//Example of usage
foreach (Type Type in
                Assembly.GetAssembly(typeof(BaseView)).GetTypes()
                .Where(TheType => TheType.IsClass && !TheType.IsAbstract && TheType.IsSubclassOf(typeof(BaseView))))
            {

                AddView(Type.Name.Replace("View", ""), (BaseView)Activator.CreateInstance(Type));
            }
Posted by: Guest on March-30-2020
0

get all properties of an object including children c#

private void DisplayObject(object obj)
{
    var type = obj.GetType();
    foreach(var propertyInfo in type.GetProperties())
    {
        object value = propertyInfo.GetValue(obj, null);
        if(propertyInfo.PropertyType.IsGenericType && 
            propertyInfo.PropertyType.GetGenericTypeDefinition() == typeof(IEnumerable<>))
        {
            foreach(object o in (IEnumerable)value)
            {
                DisplayObject(o);
            }
        }
        else
        {
            Console.WriteLine(value);
        }
    }
}
Posted by: Guest on October-23-2020

Code answers related to "c# get all fields and child fields with reflection"

C# Answers by Framework

Browse Popular Code Answers by Language