Главная » C#, Компоненты » Провайдеры

0

Для начала сделаем простое приложение, состоящее из одной формы, и разместим на ней компонент Button (рис. 10.1). Посмотрите на код, появившийся в файле Form 1 .Designer.cs:

this.buttonl = new System.Windows.Forms.Button();

this.buttonl.Location = new System.Drawing.Point(72, 35);

this.buttonl.Name = "buttonl";

this.buttonl.Size = new System.Drawing.Size(75, 23);

this.buttonl.Tablndex – 0;

this.buttonl.Text – "buttonl";

this.buttonl.UseVisualStyleBackColor = true;

Рис. 10.1. Форма с компонентом Button

Теперь добавьте кнопке картинку (свойство image) и посмотрите на получившийся код:

System. ComponentModel.ComponentResourceManager resources =

new System.ComponentModel.ComponentResourceManager{typeof(Forml)); this.buttonl = new System.Windows.Forms.Button(); this.buttonl.Image = {(System.Drawing.Image)

(resources.GetObject("buttonl.Image"))); this.buttonl.Location = new System.Drawing.Point(72, 35); this.buttonl.Name = "buttonl";

this.buttonl.Size = new System.Drawing.Size(75, 23);

this.buttonl.Tablndex = 0;

this.buttonl.Text = "buttonl";

this.buttonl.UseVisualStyleBackColor = true;

Понятно, что среде не удалось сохранить картинку в внде кода н пришлось сохранить ее в ресурсном файле. Этот файл называется Forml.resx, а данные в нем выглядят примерно так:

<data name="buttonl.Image" type="System.Drawing.Bitmap, System. Drawing" mimetype=

"application/x-microsoft.net.object.bytearray.base64"> <value>

Qk2 6AQEAAAAAAAAAAS CwAAEgsAAGEAAABhAAAAaxAQ </value> </data>

Генерация кода и данных, нлн, другими словами, сериализация времени разработки (design time serialisation) производится с помощью специальных провайдеров, которые называются CodeDom-лровайдвры. Провайдером для С# является класс Microsoft.CSharp.CSharpCodeProvider, а Провайдером ДЛЯ Visual Basic— класс Microsoft.visuaiBasic.vBCodeProvider. Детально рассматривать работу провайдеров в рамках этой книги я не буду н ограничусь чнсто практическими вопросами.

Литература:

Агуров П. В. C#. Разработка компонентов в MS Visual Studio 2005/2008. – СПб.: БХВ-Петербург, 2008. — 480 е.: ил.

По теме:

  • Комментарии