Ввод-вывод в C# |
Периферийные устройства | ||
<< Настройка локального принтера | Ввод-вывод в C# >> |
Картинок нет |
Автор: pov. Чтобы познакомиться с картинкой полного размера, нажмите на её эскиз. Чтобы можно было использовать все картинки для урока информатики, скачайте бесплатно презентацию «Ввод-вывод в C#.ppt» со всеми картинками в zip-архиве размером 46 КБ.
Сл | Текст | Сл | Текст |
1 | Ввод-вывод в C#. Сериализация. | 9 | объект сериализуется в поток, информация о |
2 | Сохранение объектов в .NET. В терминах | всех других объектах, на которые он | |
.NET сериализация (serialization) — это | ссылается, также должна сериализоваться. | ||
термин, описывающий процесс преобразования | Например, когда сериализуется производный | ||
объекта в линейную последовательность | класс, ссылки на другие классы, которые | ||
байтов. Обратный процесс, когда из потока | есть в базовых классах для этого | ||
байтов, содержащего всю необходимую | производного класса, также должны | ||
информацию, объект восстанавливается в | отслеживаться и учитываться. | ||
исходном виде, называется десериализацией | 10 | Графы для отношений объектов. 3. 2. 1. | |
(deserialization). | Car. Radio. JamesBondCar. [Саг 3, ref 2], | ||
3 | Сохранение объектов в .NET. Вот | [Radio 2], [JamesBondCar 1, ref 3, ref 2]. | |
некоторые основные области, где | 11 | Графы для отношений объектов. Набор | |
сериализация дает преимущества: | взаимосвязанных объектов, сериализованных | ||
Доступность - компонент можно сохранить в | в поток, называется графом объектов | ||
файле и обращаться к нему в любое время. | (object graph). Графы позволяют | ||
Время жизни - сохранение объекта с ero | фиксировать отношения объектов друг к | ||
состоянием продлевает ему жизнь. Обычно, | другу, и они не соответствуют классическим | ||
коrда вы закрываете приложение, все | моделям отношений классов в | ||
связанные с ним объекты aвтоматически | объектно-ориентированном программировании. | ||
уничтожаются. Использование в сетевых | Внутри графа каждому из объектов | ||
приложениях - сложная форма объекта была | присваивается уникальный номер, который | ||
преобразована в формат, подходящий для | используется только для служебных целей | ||
передачи через сеть. Надежность – | самого графа и которому совершенно не | ||
сохраненный объект можно воссоздать | обязательно должно что-то соответствовать | ||
"как он есть". | в реальном мире. Далее записывается | ||
4 | Сериализация в формат XML. | информация о соответствии имени класса | |
Сериализация объекта в формат XML имеет | этому номеру, информация о всех отношениях | ||
определенные преимущества - в первую | этого класса с другими классами и | ||
очередь вы трансформируете специфичную для | отношениях других классов между собой. | ||
системы информацию о состоянии в текст, | 12 | Выбираем объект Formatter. После того | |
который можно леrко переслать по сети и | как мы пометили класс как доступный для | ||
через брандмауэры. Однако в полученных ХМL | сериализации, наша следующая задача — | ||
данных не сохраняются типы разнообразных | выбрать формат, в котором будет сохранен | ||
используемых полей, вместо этоrо свойства, | объектный граф. Пространство имен | ||
поля и возвращаемые значения сериализуются | System.Runtime.Serialization.Formatters | ||
в XML формат. Эта особенность полезна, | включает в себя еще два пространства имен | ||
если нужно передавать значения, а не | - *.Binary и *.Soap, каждому из которых | ||
детальную информацию о самом объекте. | соответствует один из двух объектов | ||
Класс XmlSerializer из пространства имен | Formatter, которые можно использовать по | ||
System. Xml. Serialization обеспечивает | умолчанию. Класс ВinаryFormatter | ||
функциональные возможности сериализации и | сериализует объектный граф в компактном | ||
десериализации объектов в ХМL формате. | потоке двоичного формата, в то время как | ||
5 | Сериализация в формат XML. Для | класс SoapFormatter представляет граф как | |
сериализации класса есть два простых | сообщение протокола SOAP (Simple Object | ||
правила: Класс должен поддерживать | Access Protocol — простого протокола | ||
используемый по умолчанию открытый | доступа к объектам) в формате XML. | ||
конструктор без параметров. Это требование | 13 | Выбираем объект Formatter. Класс | |
связано с тем, что при воссоздании объекта | BinaryFormatter определен в библиотеке | ||
через процесс десериализации сначала | mscorlib.dll, поэтому единственное, что | ||
экземпляр объекта создается конструктором | нам потребуется для сериализации при | ||
по умолчанию, а затем из входящеrо потока | помощи объекта Formatter, — определить | ||
данных ycтaнaвливаются открытые свойства. | использование этого пространства имен: // | ||
Если конструктор по умолчанию отсутствует, | Для сериализации объектов в двоичном | ||
.NET Framework не будет знать, как создать | формате using | ||
объект. Сохраняются только открытые | System.Runtime.Serialization.Formatters.Bi | ||
свойства, поддерживающие операции get и | ary; Класс SoapFormatter определен в | ||
set, и открытые члены данных. Это | отдельной сборке, поэтому для сохранения | ||
объясняется тем, что процесс сериализации | объекта в формате SOAP вам вначале | ||
не может обращаться к закрытым и доступным | потребуется добавить ссылку на сборку | ||
только на чтение элементам данных. | System.Runtime.Serializaton.Formatters.Soa | ||
6 | Сериализация в формат XML. Для | .dll,а затем использовать аналогичную | |
сериализации следует подключить | команду: // Для сериализации объектов в | ||
пространство имен System.Xml.Serialization | формате SOAP using | ||
Предположим, у нас есть класс Customer. | System.Runtime.Serialization.Formatters.So | ||
Customer cust1 = new Customer(); … // | p; | ||
создаем поток для записи StreamWriter | 14 | Сериализация в двоичном формате. | |
writer = new | public static void Main() { // Создаем | ||
StreamWriter("Customer.xml"); // | объект JamesBondCar и выполняем с ним | ||
создаем сериализатор XmlSerializer | всякие // действия JamesBondCar myAuto = | ||
serializer = new | new JamesBondCar(“Fred“, 50, false, true); | ||
XmlSerializer(typeof(Customer)); // и | myAuto.TurnOnRadio(true); | ||
сериализуем объект | myAuto.GoUnderWater(); // Создаем поток | ||
serializer.Serialize(writer, cust1); | для записи в файл FileStream myStream = | ||
writer.Close(); . . . | File.Create("CarData.dat"); // | ||
7 | Десериализация из формата XML. . . . | Помещаем объектный граф в поток в двоичном | |
// Создаем поток для записи filestream | формате BinaryFormatter myBinaryFormat = | ||
reader= new | new BlnaryFormatter(); | ||
filestream("customer.Xml", | myBinaryFormat.Serialize(myStream, | ||
filemode.Open, fileaccess.Read); // | myAuto); myStream.Close(); . . . }. | ||
создаем десериализатор xmlserializer | 15 | Сериализация в формате SOAP. using | |
deserializer = new | System.Runtime.Serialization.Formatters.So | ||
xmlserializer(typeof(customer)); // и | p; . . . // Сохраним тот же самый объект в | ||
десериализуем объект customer cust2 = | формате SOAP FileStream myStream = | ||
(customer)deserializer.Deserialize(reader) | File.Create(“CarData.xml"); | ||
. . . . | SoapFormatter myXMLFormat = new | ||
8 | Сериализация с помощью объектов | SoapFormatter(); | |
форматирования. Чтобы можно было провести | myXMLFormat.Serialize(myStream, myAuto); | ||
сериализацию объекта, каждый класс, | myStream.Close(); // Восстанавливаем | ||
который будет участвовать в сериализации, | объект из файла SOAP myStream = | ||
должен обладать атрибутом [Serializable]. | File.OpenRead(“CarData.xml"); | ||
// Класс Customer может быть сериализован | JamesBondCar carFromXML = | ||
[Serializable] public class Customer { | (JamesBondCar)myXMLFormat.Deserialize(mySt | ||
public int ID; public String FIO; public | eam); Console.WriteLine(carFromXML.PetName | ||
DateTime Date; public decimal Credit; // | + " is alive!"); | ||
Однако нам нет необходимости сохранять это | myStream.Close(); . . . | ||
число [NonSerialized] public decimal | 16 | Задание. Напишите программу, которая | |
CurrentPayment; }. | сериализует и десериализует произвольный | ||
9 | Сохранение объектов в .NET. Службы | объект в файл. Используйте обычный формат | |
сериализации в .NET — это весьма сложные | XML и формат SOAP. Просмотрите полученные | ||
программные модули, Они обеспечивают | XML-файлы в любом текстовом редакторе или | ||
многие неочевидные вещи: например, когда | браузере. | ||
Ввод-вывод в C#.ppt |
«Устройства ввода информации» - Устройства с клавиатурным вводам. Рядом с клавиатурой размещается подвижное устройство ,называется мышью. Функции распознавания и коррекции речи незаменимы для формирования правильного произношения. Мышь. Устройства распознавания символов. Устройства распознавания речи. Клавиатура. Устройства ввода информации.
«Устройства ввода вывода» - Ход работы. Трекбол. Ура! Изображение формируется с помощью иголок, ударяющих по бумаге через красящую ленту. Тема урока: УСТРОЙСТВА ВВОДА И ВЫВОДА ИНФОРМАЦИИ. Манипуляторы - мышь - трекбол Сенсорные панели (тачпад) Графические планшеты. Колонки и наушники. Плоттер. Видеопроектор. Устройства ввода. Назовите устройства вывода.
«Устройства вывода информации» - Монитор. Качество изображения определяется разрешающей способностью монитора. Чем больше разрешающая способность монитора, тем выше качество изображения. Плоские мониторы на жидких кристаллах (ЖК) компактны и не имеют излучения. Виды мониторов. Лазерные принтеры применяются в офисах для печати документов.
«Устройства ввода и вывода информации» - Сканеры бывают двух типов: ручные планшетные. Устройства вывода информации. Содержит сотни тысяч концентрических дорожек, на которых хранится информация. универсальное устройство вывода информации. Предназначены для прослушивания звука, которые подключаются к выходу звуковой платы. Служит в качестве устройства вывода.
«Устройства ввода» - Какой вид информации можно вводить с помощью клавиатуры? Также может прилагаться специальная мышь. - Основное устройство ввода информации от пользователя в компьютер. Клавиатура. Сенсорный экран. Устройство ввода. Джойстик (англ. Внешне имеет вид карандаша, соединённого проводом с компьютером. Объясните назначение сканера, микрофона, веб-камеры.
«Вывод войск из Афганистана» - Пропали без вести и были захвачены в плен 330 человек. Афганистан февраль 1988 год. Дай мне жизнь одну. Обними меня листвой, Исцели меня травой. Страшно было остаться наедине с самим собой. После школы учился в ПТУ №13 Получил профессию - газоэлектросварщик. Через Афганистан прошло более полумиллиона воинов ОКСВ.