Содержание
- 2. Что такое рефлексия типов В .NET рефлексия типов – это процесс обнаружения типов во время работы
- 3. Члены класса Type
- 4. Получение объекта класса Type Foo theFoo = new Foo(); Type t = theFoo.GetType(); Type t =
- 5. Тестовый класс Foo // Мы сможем получить разнообразную информацию об этом классе во время выполнения namespace
- 6. Получаем информацию о полях и методах public static void ListMethods (Foo f) { Console.WriteLine("***** Methods of
- 7. Выводим разную информацию о классе // Выводим разную информацию о Foo public static void ListVariosStats(Foo f)
- 8. Выводим список свойств // Выводим список всех свойств public static void ListPorps(Foo f) { Console.WriteLine("***** Properties
- 9. Выводим список интерфейсов // Выводим список всех интерфейсов, поддерживаемых Foo public static void ListInterfaces(Foo f) {
- 10. Типы пространства имен System.Reflection
- 11. Загрузка сборки namespace CarReflector // Получаем информацию о сборке CarLibrary { using System; using System.Reflection; using
- 12. Вывод информации о типах в сборке public class CarReflector { public static int Main(string[] args) {
- 13. Вывод информации о членах класса private static void ListAllMembers(Assembly a) { Type miniVan = a.GetType("CarLibrary.MiniVan"); Console.WriteLine("Listing
- 14. Вывод информации о параметрах метода private static void GetParams(Assembly a) { Type miniVan = a.GetType("CarLibrary.MiniVan"); MethodInfo
- 15. Позднее связывание и класс System.Activator // Создаем объект выбранного нами типа "на лету" public class LateBind
- 16. Использование позднего связывания public static int Main(string[] args) { // Загружаем CarLibrary при помощи класса Assembly
- 17. Вызов метода с параметрами object[] paramArray = new object[2]; paramArray[0]="Fred"; paramArray[1]= 4; MethodInfo mi = miniVan.GetMethod("TellChildToBeQuiet");
- 18. Динамические сборки Динамические сборки создаются «на лету» Ее можно сохранить на диск Пространство имен System.Reflection.Emit Класс
- 19. Атрибуты в .NET Атрибуты – это аннотации, который могут быть применены к типу (интерфейсу, структуре и
- 20. Некоторые встроенные атрибуты
- 21. Работа с существующими атрибутами // Этот класс можно сохранять на диске [Serializable] public class Motorcycle {
- 22. Создание пользовательских атрибутов public class VehicleDescriptionAttribute : System.Attribute { private string description; public string Desc {
- 23. Применение пользовательских атрибутов [VehicleDescriptionAttribute("A very long, slow but feature rich auto")] public class WinExample { public
- 24. Ограничение использования атрибута // Это перечисление позволяет определить, к чему можно будет // применять пользовательский атрибут
- 25. Ограничение использования атрибута namespace CustomAtt { using System; [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct)] public class VehicleDescriptionAttribute : System.Attribute
- 26. Аттрибуты уровня сборки и модуля // Гарантируем совместимость с CLS using System; [assembly:System.ClsCompliantAttribute(true)] namespace MyAttributes {
- 27. Файл AssemblyInfo.cs
- 29. Скачать презентацию