Fråga : Besparingen och hämtande anmärker för att spara using XML i VS2005

Pröva förmiddag I att skapa en generisk metod för besparing en anmärka ut till en spara och hämtande den igen.  Förmiddag som I gissar den XML, är långt att gå, men alla av exempel som jag finner, kräver ett högre jämnt av .NET, än jag har att ta fram to.

What jag önskar är något något liknande detta:

public klassificerar anställd {privat
stränger känt = ""; privat
stränger ssn = ""; allmänhet för
för anställd för
offentlig () {
} stränger känt {
får {återgång this.name; } uppsättning för
{this.name = värderar; } allmänhet för
för
} stränger SSN {
får {återgång this.ssn; } uppsättning för
{this.ssn = värderar; }

I för
för
}} önskar att vara kompetent att använda den något liknande detta: anställd för

emp = ny anställd ();
SaveObject (emp, @ " c:\temp\myemp ");

… och därefter anställd för later
emp = RetrieveObject (@ " c:\temp\m yemp ");

Can detta göras med VS2005?  Vad skulle metoderna innehåller?
" klar "

Svar : Besparingen och hämtande anmärker för att spara using XML i VS2005

Det är mer försvårad, än det verkar som om, så jag har fäst något kodifierar ska gör det (se nedanfört), som en PHP klassificerar. Denna är endast en mycket enkel korg, men den kan lätt fördjupas.

Det är den använda något liknande så

$b = ny myBasket (”basketName”);    // du kan köra flera korgar, precis unikt bruk namnger

$b->addItem ($productCode);  // tillfogar 1 objekt

$b->addItem ($productCode2, 10);   // tillfogar ett antal av 10 för productCode2


Att att visa korgen

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

foreach ($items som $index=> $aProductCode) {

     eka ”produkten kodifierar $aProductCode har {$qty [$index]} objekt
”;
}
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 ();
     }





     // ----- Privata metoder -------------------------------------------------


     // lager strömsamlingen i en periodsvariabel
     //
     privat fungera updateBasket () {
          $_SESSION [$this->sessName] = sänder som en serie ($this->basket);
          $_SESSION [$this->sessQty]  = sänder som en serie ($this->qty);
     }



     // initialiserar korgen
     //
     privat fungera initialiserar () {

          // kontroll, om perioden är pågående, och om hämta så den existerande korgen
          //
          om (isset ($_SESSION [$this->sessName]) &&isset ($_SESSION [$this->sessQty])) {
               $this->basket = unserialize ($_SESSION [$this->sessName]);
               $this->qty    = unserialize ($_SESSION [$this->sessQty]);
          }
          annars {
               $this->basket = samling ();
               $this->qty    = samling ();
               $this->updateBasket ();
          }

     }



     // ----- Offentliga metoder --------------------------------------------------


     // tömmer korgen ut
     //
     fungera fri () {

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



     // tillfogar en anmärka till avsluta av lista
     //
     // parametrar: $item - en anmärka som ska lagras
     //             $num - ett antal som ska lagras, standarder till 1
     //
     fungera addItem ($item, $num=1) {
          // ser till att indexstaget kliver in genom att hämta det högst
          // existerande index och öka det
          //
          $ctr = räkning ($this->basket);

          om ($ctr > 0) {
               $lastKey = avslutar (array_keys ($this->qty));
               $ctr = $lastKey + 1;
          }

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

          $this->updateBasket ();
     }



     // tar bort ett objekt från lista - identifiera vid korgen numrerar.
     // NOTERAR DET som TAR BORT ETT OBJEKT, NOLLSTÄLLER INTE KORGEN NUMRERAR i samlingarna.
     //
     // parametrar: $basketNumber - indexet av samlingtillträdeet som ska tas bort från samlingen
     //
     fungera rmvItem ($basketNumber) {

          om (räkning ($this->basket) > 0) {

               // 001 kontroll att ett objekt finns innan det försöker dess borttagning
               //
               om (isset ($this->basket [$basketNumber]  )) {
                    unset ($this->basket [$basketNumber]);
                    unset ($this->qty [$basketNumber]);
                    $this->updateBasket ();
               }
          }
     }



     // Fetch ett objekt
     //
     // parametrar: $basketNumber - indexet av samlingtillträdeet som ska hämtas från samlingen
     //
     fungera fetchItem ($basketNumber) {
          om (räkning ($this->basket) > 0) {
               gå $this->basket [$basketNumber] tillbaka;
          }
     }



     // Fetch per antalet för ett objekt
     //
     // parametrar: $basketNumber - indexet av antalet som ska hämtas från samlingen
     //
     fungera fetchItemQuantityen ($basketNumber) {
          om (räkning ($this->qty) > 0) {
               gå $this->qty [$basketNumber] tillbaka;
          }
     }


     // ändring ett givet objekt i lista
     //
     // parametrar: $basketNumber - indexet av anmärka som ska uppdateras
     //             $anItem - en anmärka
     //
     fungera chgItem ($basketNumber, $anItem) {
          om (räkning för && för $basketNumber->= 0 ($this->basket) > 0) {
               // 001 kontroll att ett objekt finns innan det försöker dess borttagning
               //
               om (isset ($this->basket [$basketNumber]  )) {
                    $this->basket [$basketNumber] = $anItem;
                    $this->updateBasket ();
               }
          }
     }



     // ändring per givet objektantal i lista
     //
     // parametrar: $basketNumber - indexet av anmärka som ska uppdateras
     //             $qty - Det nya antalet
     //
     fungera chgQty ($basketNumber, $qty) {
          om (räkning för && för $basketNumber->= 0 ($this->qty) > 0) {

               // 001 kontroll att ett objekt finns innan det försöker dess borttagning
               //
               om (isset ($this->basket [$basketNumber]  )) {
                    $this->qty [$basketNumber] = $qty;
                    $this->updateBasket ();
               }
          }
     }



     // får en lista allra objekten i korgen
     //
     fungera fetchAllItems () {
          gå $this->basket tillbaka;
     }



     // får en lista allra objektantalet lagrat i korgen
     //
     fungera fetchAllQtys () {
          gå $this->qty tillbaka;
     }



     // går räkningen av numrera av objekt i korgen tillbaka
     //
     fungera countBasket () {
          gå array_sumen ($this->qty) tillbaka;
     }



} // avslutar av klassificerar myBasket
Andra lösningar  
 
programming4us programming4us