Query properties of a Type
using System;
using System.Reflection;
class QueryTypesApp
{
public static void DisplaySyntax()
{
Console.WriteLine("\nSyntax: QueryTypes <typename>\n");
}
public static void QueryType(string typename)
{
try
{
Type type = Type.GetType(typename, true, true);
Console.WriteLine("Type name: {0}", type.FullName);
Console.WriteLine("\tHasElementType = {0}", type.HasElementType);
Console.WriteLine("\tIsAbstract = {0}", type.IsAbstract);
Console.WriteLine("\tIsAnsiClass = {0}", type.IsAnsiClass);
Console.WriteLine("\tIsArray = {0}", type.IsArray);
Console.WriteLine("\tIsAutoClass = {0}", type.IsAutoClass);
Console.WriteLine("\tIsAutoLayout = {0}", type.IsAutoLayout);
Console.WriteLine("\tIsByRef = {0}", type.IsByRef);
Console.WriteLine("\tIsClass = {0}", type.IsClass);
Console.WriteLine("\tIsCOMObject = {0}",type.IsCOMObject);
Console.WriteLine("\tIsContextful = {0}", type.IsContextful);
Console.WriteLine("\tIsEnum = {0}", type.IsEnum);
Console.WriteLine("\tIsExplicitLayout = {0}",type.IsExplicitLayout);
Console.WriteLine("\tIsImport = {0}", type.IsImport);
Console.WriteLine("\tIsInterface = {0}", type.IsInterface);
Console.WriteLine("\tIsLayoutSequential = {0}", type.IsLayoutSequential);
Console.WriteLine("\tIsMarshalByRef = {0}", type.IsMarshalByRef);
Console.WriteLine("\tIsNestedAssembly = {0}",type.IsNestedAssembly);
Console.WriteLine("\tIsNestedFamANDAssem = {0}", type.IsNestedFamANDAssem);
Console.WriteLine("\tIsNestedFamily = {0}", type.IsNestedFamily);
Console.WriteLine("\tIsNestedFamORAssem = {0}",type.IsNestedFamORAssem);
Console.WriteLine("\tIsNestedPrivate = {0}", type.IsNestedPrivate);
Console.WriteLine("\tIsNestedPublic = {0}", type.IsNestedPublic);
Console.WriteLine("\tIsNotPublic = {0}", type.IsNotPublic);
Console.WriteLine("\tIsPointer = {0}", type.IsPointer);
Console.WriteLine("\tIsPrimitive = {0}", type.IsPrimitive);
Console.WriteLine("\tIsPublic = {0}", type.IsPublic);
Console.WriteLine("\tIsSealed = {0}", type.IsSealed);
Console.WriteLine("\tIsSerializable = {0}", type.IsSerializable);
Console.WriteLine("\tIsSpecialName = {0}",type.IsSpecialName);
Console.WriteLine("\tIsUnicodeClass = {0}", type.IsUnicodeClass);
Console.WriteLine("\tIsValueType = {0}", type.IsValueType);
}
catch(System.TypeLoadException e)
{
Console.WriteLine("{0} is not a valid type",
typename);
}
}
public static void Main(string[] args)
{
if (1 != args.Length) DisplaySyntax();
else QueryType(args[0]);
Console.ReadLine();
}
}
Related examples in the same category
1. | Call GetType() from StringBuilder | | |
2. | Call GetType for int data type | | |
3. | IsGeneric and IsGenericTypeDefinition | | |
4. | demonstrates both the instance and static GetType methods | | |
5. | Generic methods, like nongeneric methods, can be invoked dynamically at run time. | | |
6. | Type.GetGenericArguments and MethodInfo.GetGenericArguments: | | |
7. | Get Generic Type Definition | | |
8. | Deeper Reflection:Listing All the Types in an Assembly | | |
9. | Illustrates runtime type creation | | |
10. | The typeName parameter is a combination of the Assembly and Type names | | |
11. | Call static method GetType from Type to get the Type instance | | |
12. | Use GetCustomAttributes from Type to get custom attributes | | |
13. | Use Type.GetType to check the type of an object | | |
14. | Get object Type Name, UnderlyingSystemType, IsClass | | |
15. | Type.GetConstructors | | |
16. | Use Type.IsClass to check if a type is a class | | |
17. | Print Types | | |
18. | Determining the base classes and interfaces for a class. | | |
19. | Create Object from assembly name and class name | | |
20. | Makes a shallow copy of the object to a different class type (inherits from the original) | | |
21. | Makes a shallow copy of the object | | |
22. | Get all methods from an object | | |
23. | Get Derivation from an object | | |
24. | The full name of the Array type | | |
25. | Change type | | |
26. | Does a given Type have a Default Constructor | | |
27. | Is it a Nullable Type | | |
28. | Is Value Type Unitialized Value | | |
29. | Get Type Unitialized Value | | |
30. | Is Object Unitialized Value | | |
31. | Is it a SubClass for another class | | |
32. | Convert type from initial Value | | |
33. | Returns all assemblies and their properties | | |
34. | Helper to display the "contents" of the Value Object | | |
35. | Get a public field value given its name | | |
36. | Deep Comparison two objects if they are alike. | | |
37. | Set the specified public field value of an object | | |
38. | Determine if a type is cloneable: either a value type or implementing ICloneable. | | |
39. | Provides a simple reflection based mapper to perform a Data Mapping between two types of objects | | |
40. | Represents type declarations: class types, interface types, array types, value types, enumeration types, type parameters, generic type definitions, and open or closed constructed generic types. | | |
41. | Gets the attributes associated with the Type. | | |
42. | Gets the type from which the current Type directly inherits. | | |
43. | Gets a value indicating whether the current Type object has type parameters that have not been replaced by specific types. | | |
44. | Gets the type that declares the current nested type or generic type parameter. | | |
45. | Gets a reference to the default binder. | | |
46. | Represents the member filter used on attributes. | | |
47. | Returns an array of Type objects representing a filtered list of interfaces implemented or inherited by the current Type. | | |
48. | Returns a filtered array of MemberInfo objects of the specified member type. | | |
49. | Gets the number of dimensions in an Array. | | |
50. | Searches for the members defined for the current Type whose DefaultMemberAttribute is set. | | |
51. | Type.GetElementType | | |
52. | Returns a Type object that represents a generic type definition from which the current generic type can be constructed. | | |
53. | Searches for the interface with the specified name. | | |
54. | Get types implementing Dictionary | | |
55. | Returns all the public properties of the current Type. | | |
56. | Type to string | | |
57. | Get Full Type String | | |
58. | Get class members | | |
59. | Reflector | | |
60. | Is Type a primitive type | | |
61. | Find Method With One Parameter Of Type | | |
62. | Determines whether the current type is an implementation of the specified interface. | | |
63. | Returns equality with type conversion | | |
64. | Groups the utility methods that extracts the meta data of a type. | | |
65. | Type loader | | |
66. | Get Friendly Type Name | | |
67. | Recursively gets all generic type params in any given type definition. | | |
68. | Type Manager | | |
69. | Given an anonymous type | | |
70. | Type Normalizer | | |
71. | Run static/Instance method | | |
72. | Get Subclass | | |