Wei-Meng Lee - C# 2008 Programmer's Reference

Здесь есть возможность читать онлайн «Wei-Meng Lee - C# 2008 Programmer's Reference» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Indianapolis, Год выпуска: 2009, ISBN: 2009, Издательство: Wiley Publishing, Inc., Жанр: Программирование, на английском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

C# 2008 Programmer's Reference: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «C# 2008 Programmer's Reference»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

C# 2008 Programmers Reference provides a concise and thorough reference on all aspects of the language. Each chapter contains detailed code samples that provide a quick and easy way to understand the key concepts covered.

C# 2008 Programmer's Reference — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «C# 2008 Programmer's Reference», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Binary Serialization

Consider the following class, BookMark, which is used to stored information about web addresses and their descriptions:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

using System.Runtime.Serialization.Formatters.Binary;

namespace Serialization {

class Program {

static void Main(string[] args) {}

}

class BookMark {

private DateTime _dateCreated;

public BookMark() {

_dateCreated = DateTime.Now;

}

public DateTime GetDateCreated() {

return _dateCreated;

}

public string URL { get; set; }

public string Description { get; set; }

public BookMark NextURL { get; set; }

}

}

The BookMarkclass contains properties as well as private variables. The NextURLproperty links multiple BookMarkobjects, much like a linked list. Let's now create two BookMarkobjects and link them:

static void Main(string[] args) {

BookMark bm1, bm2;

bm1 = new BookMark {

URL = "http://www.amazon.com",

Description = "Amazon.com Web site"

};

bm2 = new BookMark() {

URL = "http://www.wrox.com",

Description = "Wrox.com Web site",

NextURL = null

};

//---link the first BookMark to the next---

bm1.NextURL = bm2;

}

You can serialize the objects into a binary stream by writing the Serialize() function:

static void Main(string[] args) {

//...

}

static MemoryStream Serialize(BookMark bookMark) {

MemoryStream ms = new MemoryStream();

FileStream fs = new FileStream(

@"C:\Bookmarks.dat", FileMode.Create, FileAccess.Write);

BinaryFormatter formatter = new BinaryFormatter();

//---serialize to memory stream---

formatter.Serialize(ms, bookMark);

ms.Position = 0;

//---serialize to file stream---

formatter.Serialize(fs, bookMark);

return ms;

}

For binary serialization, you need to import the System.Runtime.Serialization.Formatters.Binarynamespace.

The Serialize()function takes in a single parameter (the BookMarkobject to serialize) and returns a MemoryStreamobject representing the serialized BookMarkobject. You use the BinaryFormatterclass from the System.Runtime.Serialization.Formatters.Binarynamespace to serialize an object. One side effect of this function is that it also serializes the BookMarkobject to file, using the FileStreamclass.

Before you serialize an object, you need to prefix the class that you want to serialize name with the [Serializable]attribute:

[Serializable]

class BookMark {

private DateTime _dateCreated;

public BookMark() {

_dateCreated = DateTime.Now;

}

public DateTime GetDateCreated() {

return _dateCreated;

}

public string URL { get; set; }

public string Description { get; set; }

public BookMark NextURL { get; set; }

}

The following statement serializes the bm1 BookMarkobject, using the Serialize()function:

static void Main(string[] args) {

BookMark bm1, bm2;

bm1 = new BookMark {

URL = "http://www.amazon.com",

Description = "Amazon.com Web site"

};

bm2 = new BookMark() {

URL = "http://www.wrox.com",

Description = "Wrox.com Web site",

NextURL = null

};

//---link the first BookMark to the next---

bm1.NextURL = bm2;

//========Binary Serialization=========

//---serializing an object graph into a memory stream---

MemoryStream ms = Serialize(bm1);

}

To prove that the object is serialized correctly, you deserialize the memory stream (that is, "unflatten" the data) and assign it back to a BookMarkobject:

static void Main(string[] args) {

BookMark bm1, bm2;

bm1 = new BookMark {

URL = "http://www.amazon.com",

Description = "Amazon.com Web site"

};

bm2 = new BookMark() {

URL = "http://www.wrox.com",

Description = "Wrox.com Web site",

NextURL = null

};

//---link the first BookMark to the next---

bm1.NextURL = bm2;

//========Binary Serialization=========

//---serializing an object graph into a memory stream---

MemoryStream ms = Serialize(bm1);

//---deserializing a memory stream into an object graph---

BookMark bm3 = Deserialize(ms);

}

Here is the definition for the DeSerialize()function:

static void Main(string[] args) {

//...

}

static MemoryStream Serialize(BookMark bookMark) {

//...

}

static BookMark Deserialize(MemoryStream ms) {

BinaryFormatter formatter = new BinaryFormatter();

return (BookMark)formatter.Deserialize(ms);

}

To display the values of the deserialized BookMark object, you can print out them out like this:

static void Main(string[] args) {

BookMark bm1, bm2;

bm1 = new BookMark {

URL = "http://www.amazon.com",

Description = "Amazon.com Web site"

};

bm2 = new BookMark() {

URL = "http://www.wrox.com",

Description = "Wrox.com Web site",

NextURL = null

};

//---link the first BookMark to the next---

bm1.NextURL = bm2;

//========Binary Serialization=========

//---serializing an object graph into a memory stream---

MemoryStream ms = Serialize(bm1);

}

To prove that the object is serialized correctly, you deserialize the memory stream (that is, "unflatten" the data) and assign it back to a BookMarkobject:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «C# 2008 Programmer's Reference»

Представляем Вашему вниманию похожие книги на «C# 2008 Programmer's Reference» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «C# 2008 Programmer's Reference»

Обсуждение, отзывы о книге «C# 2008 Programmer's Reference» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x