Cuestión : Ahorrando y recuperando el objeto al archivo usar XML en VS2005

Estoy intentando crear un método genérico para ahorrar un objeto hacia fuera a un archivo y recuperarlo otra vez.  Estoy conjeturando que XML es la manera de ir, solamente todos los ejemplos que encuentro para requerir un de alto nivel de .NET que tengo acceso to.

What quiero soy algo similar: empleado de la clase del

public {nombre = "" privados de la secuencia del
; ssn = "" privados de la secuencia del
; nombre público público de la secuencia del
del empleado del
() {
} {el
consigue {this.name de vuelta; } el
fijó {this.name = valor; } secuencia pública SSN del
del
} {el
consigue {this.ssn de vuelta; } el
fijó {this.ssn = valor; } el

I del
del
}} quiere poder utilizarlo tiene gusto de esto: empleado del

emp = nuevo empleado ();
SaveObject (emp, @ " c:\temp\myemp ");

… y entonces empleado del later
emp = RetrieveObject (@ " yemp de c:\temp\m "); ¿el

Can esto se haga con VS2005?  ¿Qué los métodos contendrían?
class= del

Respuesta : Ahorrando y recuperando el objeto al archivo usar XML en VS2005

Es más complicado que aparece así que he atado un cierto código que lo hará (véase abajo) pues una clase del PHP. Esto es solamente una cesta muy simple pero puede ser ampliada fácilmente.

Se utiliza como tan

$b = nuevo myBasket (“basketName”);    // usted puede funcionar varias cestas, apenas utiliza nombres únicos

$b->addItem ($productCode);  // agrega 1 artículo

$b->addItem ($productCode2, 10);   // agrega una cantidad de 10 para productCode2


Para exhibir la cesta

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

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

     código de producto del eco el “$aProductCode tiene {$qty [$index]} artículos
“;
}
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 ();
     }





     // ----- Métodos privados -------------------------------------------------


     Almacén de // el arsenal actual en una variable de la sesión
     //
     updateBasket privado de la función () {
          $_SESSION [$this->sessName] = serializan ($this->basket);
          $_SESSION [$this->sessQty]  = serializan ($this->qty);
     }



     // inicializa la cesta
     //
     la función privada se inicializa () {

          Cheque de // si la sesión está en curso y si recuperar tan la cesta existente
          //
          si (isset ($_SESSION [$this->sessName]) isset del && ($_SESSION [$this->sessQty])) {
               $this->basket = unserialize ($_SESSION [$this->sessName]);
               $this->qty    = unserialize ($_SESSION [$this->sessQty]);
          }
          {
               $this->basket = arsenal ();
               $this->qty    = arsenal ();
               $this->updateBasket ();
          }

     }



     // ----- Métodos públicos --------------------------------------------------


     // vacia la cesta hacia fuera
     //
     claro de la función () {

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



     // agrega un objeto al extremo de la lista
     //
     Parámetros de //: $item - un objeto que se almacenará
     //             $num - una cantidad que se almacenará, defectos a 1
     //
     addItem de la función ($item, $num=1) {
          // asegura la estancia de los índices en paso recuperando el más alto
          índice existente de // e incremento de él
          //
          $ctr = cuenta ($this->basket);

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

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

          $this->updateBasket ();
     }



     // quita un artículo de la lista - identificar por el número de la cesta.
     la NOTA de // QUE LA ELIMINACIÓN DE UN ARTÍCULO NO REAJUSTA LA CESTA NUMERA en los órdenes.
     //
     Parámetros de //: $basketNumber - el índice de la entrada del arsenal a quitar del arsenal
     //
     rmvItem de la función ($basketNumber) {

          si (cuenta ($this->basket) > 0) {

               Cheque de // 001 que un artículo existe antes de intentar su retiro
               //
               si (isset ($this->basket [$basketNumber]  )) {
                    unset ($this->basket [$basketNumber]);
                    unset ($this->qty [$basketNumber]);
                    $this->updateBasket ();
               }
          }
     }



     Alcance de // un artículo
     //
     Parámetros de //: $basketNumber - el índice de la entrada del arsenal a recuperar del arsenal
     //
     fetchItem de la función ($basketNumber) {
          si (cuenta ($this->basket) > 0) {
               $this->basket de vuelta [$basketNumber];
          }
     }



     Alcance de // a la cantidad para un artículo
     //
     Parámetros de //: $basketNumber - el índice del qty a recuperar del arsenal
     //
     fetchItemQuantity de la función ($basketNumber) {
          si (cuenta ($this->qty) > 0) {
               $this->qty de vuelta [$basketNumber];
          }
     }


     Cambio de // un artículo dado en la lista
     //
     Parámetros de //: $basketNumber - el índice del objeto a la actualización
     //             $anItem - un objeto
     //
     chgItem de la función ($basketNumber, $anItem) {
          si (cuenta del && del >= 0 de $basketNumber ($this->basket) > 0) {
               Cheque de // 001 que un artículo existe antes de intentar su retiro
               //
               si (isset ($this->basket [$basketNumber]  )) {
                    $this->basket [$basketNumber] = $anItem;
                    $this->updateBasket ();
               }
          }
     }



     Cambio de // a la cantidad dada de los artículos en la lista
     //
     Parámetros de //: $basketNumber - el índice del objeto a la actualización
     //             $qty - La nueva cantidad
     //
     función chgQty ($basketNumber, $qty) {
          si (cuenta del && del >= 0 de $basketNumber ($this->qty) > 0) {

               Cheque de // 001 que un artículo existe antes de intentar su retiro
               //
               si (isset ($this->basket [$basketNumber]  )) {
                    $this->qty [$basketNumber] = $qty;
                    $this->updateBasket ();
               }
          }
     }



     // consigue una lista de todos los artículos en la cesta
     //
     fetchAllItems de la función () {
          $this->basket de vuelta;
     }



     // consigue una lista de todas las cantidades del artículo almacenadas en la cesta
     //
     fetchAllQtys de la función () {
          $this->qty de vuelta;
     }



     // vuelve la cuenta del número de artículos en la cesta
     //
     countBasket de la función () {
          array_sum de vuelta ($this->qty);
     }



} extremo de // del myBasket de la clase
Otras soluciones  
 
programming4us programming4us