Exemplo n.º 1
0
        private static void ReflectOnAttributesUsingEarlyBinding()
        {
            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("=> Reflect on Attributes Using Early Binding");

            Type t = typeof(Winnebago);

            object[] attrs = t.GetCustomAttributes(false);
            foreach (var v in attrs)
            {
                VehicleDescriptionAttribute a = v as VehicleDescriptionAttribute;
                if (a != null)
                {
                    Console.WriteLine($"-> Description <{a.Description}>");
                }
                else
                {
                    Console.WriteLine("-> Not a VehicleDescriptionAttribute");
                }
            }
        }
Exemplo n.º 2
0
        static void CheckAttributes(Type type, ConsoleColor color)
        {
            Console.ForegroundColor = color;
            Console.WriteLine($"-> Class <{type.Name}>, serializable <{type.IsSerializable}>");

            Console.WriteLine($"Class attributes:");
            foreach (var attr in type.GetCustomAttributes(true))
            {
                VehicleDescriptionAttribute v = attr as VehicleDescriptionAttribute;
                if (v != null)
                {
                    Console.WriteLine($"  Description <{v.Description}>");
                }
                ObsoleteAttribute o = attr as ObsoleteAttribute;
                if (o != null)
                {
                    Console.WriteLine($"  Obsolete attribute message <{o.Message}>, is error <{o.IsError}>");
                }
                SerializableAttribute s = attr as SerializableAttribute;
                if (s != null)
                {
                    Console.WriteLine($"  Serializable default <{s.IsDefaultAttribute()}>");
                }
            }

            Console.WriteLine($"Method attributes:");
            foreach (var m in type.GetMethods())
            {
                foreach (var a in m.GetCustomAttributes(true))
                {
                    VehicleDescriptionAttribute v = a as VehicleDescriptionAttribute;
                    if (v != null)
                    {
                        Console.WriteLine($"  Method <{m.Name}>: Description <{v.Description}>");
                    }
                }
            }
        }