Книги онлайн » Книги » Программирование » ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - Троелсен Эндрю

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - Троелсен Эндрю

Читать онлайн книгу «ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание».
ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - Троелсен Эндрю
Название: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
ISBN: ISBN 5-8459-1124-9
Год: 2007
Читать онлайн

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - Троелсен Эндрю — читать книгу онлайн

Страница 474 из 476

Настройте размер и шрифт текста, включите тёмную тему для удобного чтения. Переходить между страницами можно стрелками внизу или сочетанием Ctrl + ← / →.

Страница 474 из 476

‹SalesInfoDetails›

 ‹info›Цены на Colt снижены на 50'%!‹/info›

 ‹dateExpired›2004-12-02T00:00:00.0000000-06:00‹/dateExpired›

 ‹Url›http://www.CarsRUs.com‹/Url›

‹/SalesInfoDetails›

Чтобы изменить поведение, предлагаемое по умолчанию, вы можете в определения своих типов добавить атрибуты, определенные в пространстве имен System.Xml.Serialization (снова см. главу 17).

public struct SalesInfoDetails {

 public string info;

 [XmlAttribute]

 public DateTime dateExpired;

 public string Url;

}

В результате будет получено следующее XML-представление данных.

‹SalesInfoDetails dateExpired="2004-12-02T00:00:00"›

 ‹info›Цены на Colt снижены на 50%!‹/info›

 ‹Url›http://www.CarsRUs.com‹/Url›

‹/SalesInfoDetails›

Реализация GetSalesInfoDetails возвращает заполненный массив этой пользовательской структуры.

[WebMethod(Description="Get details of current sales")]

public SalesInfoDetails[] GetSalesInfoDetails {

 SalesInfoDetails[] theInfo = new SalesInfoDetails[3];

 theInfo[0].info = "Цены на Colt снижены на 50%!";

 theInfo[0].dateExpired = DateTime.Parse("12/02/04");

 theInfo[0].Url = "http://www.CarsRUs.com";

 theInfo[1].info = "Все BMW комплектуются 8-канальным звуком";

 theInfo[1].dateExpired = DateTime.Parse("8/11/03");

 theInfo[1].Url = "http://www.Bmws4U.com";

 theInfo[2].info = "Caravan бесплатно… спросите у дилера!";

 theInfo[2].dateExpired = DateTime.Parse("12/01/09");

 theInfo[2].Url = "http://www.AllPinkVans.com";

 return theInfo;

}

Доступ к типам DataSet ADO.NET

Чтобы завершить создание нашего Web-сервиса XML, вот вам еще един Web-метод, который возвращает DataSet с данными таблицы Inventory базы данных Cars, созданной при изучении ADO.NET в главе 22.

// Получение списка всех машин из таблицы Inventory.

[WebMethod(Description = "Возвращает список машин из таблицы Inventory базы данных Cars")]

pubic DataSet SetCurrentInventory {

 // Заполнение DataSet данными таблицы Inventory.

 SqlConnection sqlConn = new SqlConnection;

 sqlConn.ConnectionString = "data source=localhost;initial catalog=Cars;uid=sa;pwd=";

 SqlDataAdapter myDA= new SqlDataAdapter("Select * from Inventory", sqlConn);

 DataSet ds = new DataSet;

 myDA.Fill(ds, "Inventorу");

 return ds;

}

Исходный код. Файлы примера CarsSalesInfoWS размещены в подкаталоге, соответствующим главе 25.

Клиент Windows Forms

Чтобы проверить работу нового Web-сервисa XML, создайте приложение Windows Forms и укажите в нем ссылку на CarsSalesInfoWS, используя диалоговое окно Add Web Reference в Visual Studio 2005 (рис. 25.7).

Pиc. 25.7. Добавление ссылки на CarsSalesInfoWS

Теперь просто используйте генерируемый агент для вызова доступных Web-методов. Вот один из возможных вариантов реализации формы.

using CarsSalesInfoCLient.localhost;

…

namespace CarsSalesInfoClient {

public partial class MainWindow: Farm {

 private CarSalesInfoWS ws = new CarSalesInfoWS;

 …

 private void MainWindow_Load(object sender, EventArgs e) {

// Привязка к таблице.

Избранные книги

↑