Вопрос : Сохраняющ и восстановляющ предмет к архиву using XML в VS2005

Я пытаюсь создать родовой метод для сохранять предмет вне к архиву и восстановлять его снова.  Я угадываю что XML будет дорогой пойти, только все примеры, котор я нахожу для того чтобы требовать более высокого уровня .NET чем я имею доступ to.

What я хочу что-нибудь подобное: работник типа

public {имя = "" шнура
приватные; ssn = "" шнура
приватные; имя шнура
работника
общественное () {
} общественное {
получает {возвращенное this.name; }
установило {this.name = значение; } шнур SSN

} общественный {
получает {возвращенное this.ssn; }
установило {this.ssn = значение; }

I

}} хочет мочь использовать его любит это: работник

emp = новый работник ();
SaveObject (emp, @ " c:\temp\myemp ");

… и после этого работник later
emp = RetrieveObject (@ " yemp c:\temp\m ");

Can это было сделано с VS2005?  Методы содержали бы?
class=

Ответ : Сохраняющ и восстановляющ предмет к архиву using XML в VS2005

Оно осложненн чем оно кажется поэтому я прикреплял некоторое Кодего сделает его (см. ниже) по мере того как тип PHP. Это будет только очень просто корзиной но его можно легк расширить.

Оно использован как так

$b = новое myBasket («basketName»);    // вы можете побежать несколько корзин, как раз используете уникально имена

$b->addItem ($productCode);  // добавляет 1 деталь

$b->addItem ($productCode2, 10);   // добавляет количество 10 для productCode2


Показать корзину

$items = $b->fetchAllItems ();
$qty = $b->fetchAllQtys ();

foreach ($items как $index=> $aProductCode) {

     код продукта $aProductCode отголоска «имеет {$qty [$index]} детали
«;
}
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
sessName = $name. «_bskt»;
          $this->sessQty  = $name. «_qty»;

          $this->initialise ();
     }





     // ----- Приватные методы -------------------------------------------------


     Магазин // в настоящее время блок в перемеююом встречи
     //
     приватное updateBasket функции () {
          $_SESSION [$this->sessName] = издают сериями ($this->basket);
          $_SESSION [$this->sessQty]  = издают сериями ($this->qty);
     }



     // выступает корзина с иничиативой
     //
     приватная функция выступает с иничиативой () {

          Проверка // если встреча находится в прогрессе и если так восстановите существующий корзину
          //
          если (isset ($_SESSION [$this->sessName]) isset && ($_SESSION [$this->sessQty])) {, то
               $this->basket = unserialize ($_SESSION [$this->sessName]);
               $this->qty    = unserialize ($_SESSION [$this->sessQty]);
          }
          еще {
               $this->basket = блок ();
               $this->qty    = блок ();
               $this->updateBasket ();
          }

     }



     // ----- Общественные методы --------------------------------------------------


     // опорожняет корзину вне
     //
     ясность функции () {

          unset ($_SESSION [$this->sessName]);
          unset ($_SESSION [$this->sessQty]);
          $this->initialise ();
     }



     // добавляет предмет к концу списка
     //
     Параметры //: $item - предмет, котор нужно хранить
     //             $num - количество, котор нужно хранить, невыполнения обязательства до 1
     //
     addItem функции ($item, $num=1) {
          // обеспечивает пребывание индексов в шаге путем восстановлять самое высокое
          индекс // существующий и инкрементировать его
          //
          $ctr = отсчет ($this->basket);

          если ($ctr > 0) {, то
               $lastKey = конец (array_keys ($this->qty));
               $ctr = $lastKey + 1;
          }

          $this->basket [$ctr] = $item;
          $this->qty    [$ctr] = $num;

          $this->updateBasket ();
     }



     // извлекает деталь от списка - определите номером корзины.
     ПРИМЕЧАНИЕ // ЧТО ИЗВЛЕКАТЬ ДЕТАЛЬ НЕ ПЕРЕУСТАНОВИТ КОРЗИНУ НУМЕРУЕТ в блоках.
     //
     Параметры //: $basketNumber - индекс входа блока, котор нужно извлечь от блока
     //
     rmvItem функции ($basketNumber) {

          если (отсчет ($this->basket) > 0) {, то

               Проверка // 001 что деталь существует перед пытать свое удаление
               //
               если (isset ($this->basket [$basketNumber]  )) {, то
                    unset ($this->basket [$basketNumber]);
                    unset ($this->qty [$basketNumber]);
                    $this->updateBasket ();
               }
          }
     }



     Fetch // деталь
     //
     Параметры //: $basketNumber - индекс входа блока, котор нужно восстановить от блока
     //
     fetchItem функции ($basketNumber) {
          если (отсчет ($this->basket) > 0) {, то
               возвращенное $this->basket [$basketNumber];
          }
     }



     Fetch // количество для деталя
     //
     Параметры //: $basketNumber - индекс qty, котор нужно восстановить от блока
     //
     fetchItemQuantity функции ($basketNumber) {
          если (отсчет ($this->qty) > 0) {, то
               возвращенное $this->qty [$basketNumber];
          }
     }


     Изменение //, котор дали деталь в списке
     //
     Параметры //: $basketNumber - индекс предмета к уточнению
     //             $anItem - предмет
     //
     chgItem функции ($basketNumber, $anItem) {
          если (отсчет && >= 0 $basketNumber ($this->basket) > 0) {, то
               Проверка // 001 что деталь существует перед пытать свое удаление
               //
               если (isset ($this->basket [$basketNumber]  )) {, то
                    $this->basket [$basketNumber] = $anItem;
                    $this->updateBasket ();
               }
          }
     }



     Изменение //, котор дали количество деталей в списке
     //
     Параметры //: $basketNumber - индекс предмета к уточнению
     //             $qty - Новое количество
     //
     функция chgQty ($basketNumber, $qty) {
          если (отсчет && >= 0 $basketNumber ($this->qty) > 0) {, то

               Проверка // 001 что деталь существует перед пытать свое удаление
               //
               если (isset ($this->basket [$basketNumber]  )) {, то
                    $this->qty [$basketNumber] = $qty;
                    $this->updateBasket ();
               }
          }
     }



     // получает список всех деталей в корзине
     //
     fetchAllItems функции () {
          возвращенное $this->basket;
     }



     // получает список всех количеств деталя, котор хранят в корзине
     //
     fetchAllQtys функции () {
          возвращенное $this->qty;
     }



     // возвращает отсчет числа деталей в корзине
     //
     countBasket функции () {
          возвращенное array_sum ($this->qty);
     }



} конец // myBasket типа
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us