【发布时间】:2015-05-31 13:50:54
【问题描述】:
在写这个问题之前我已经尝试了很多,但我找不到任何答案。
我正在制作一个远程处理程序,它就像一个商店,我已经实现了.dll、服务器和客户端,除了我有一个与序列化相关的大问题之外,一切都很好,这是关于我的代码的一点总结。
[Serializable]
public class Almacen
{
int nusuarios_on, nusuarios_reg;
bool server_on;
ArrayList clientes_activos;
ArrayList clientes_registrados;
ArrayList productos_almacen;}
[Serializable]
public class Cliente
{
protected int id;
protected String usuario, dni;
private String contraseña;
Pedido pedido;}
[Serializable]
public class Pedido
{
ArrayList productos;
bool confirmado;
int preciototal;}
[Serializable]
public class Producto
{
private String nombre;
private int codigo, precio, unidades, stock; //Stock solo lo usamos en el almacen, y unidades solo en pedido.}
然后,我有我的 .dll 服务,其中我有一个方法,其中有一个“Pedido”对象,在调用该方法时通过参数中的值传递。
public class ServicioAlmacen : MarshalByRefObject
{
private Almacen almacen;
.
.
.
public int añadirProductoAlmacen(int id, Producto p) {
if(id==1) {
if(!productoRepetido(p)) {
almacen.getProductos_almacen().Add(p);
Console.WriteLine("Añadido el producto {0} al almacen.", p.getCodigo());
return 0;
}
else {
Console.WriteLine("Intento de añadir un producto repetido.");
return -1;
}
}
else {
Console.WriteLine("Acceso denegado.");
return -2;
}
}
.
.
.
}
当在客户端调用此方法时,我得到一个 SerializationException,它告诉我 ServiceAlmacen.Producto 未标记为序列化。 我不明白为什么我会得到那个异常,因为我将每个类都标记为序列化,知道吗?谢谢。
PD:如果您需要我的客户端或服务器代码,请告诉我,我将编辑发布。
【问题讨论】:
-
可能相关,注意只有公共字段和属性会被序列化。 Here for private serialization(通过 DataContract 序列化)
-
我怎样才能序列化我的类的私有属性?
标签: c# .net serialization remoting