tengo una clase abstracta 'Servidor' que creo en mi JavaScript en mi interfaz de usuario y luego quiero tener un método en mi servicio web que hace lo siguiente:Deserialize Resumen Clase
public List<Database> GetDatabases(Server server)
{
Type type = server.GetType();
Server x = null;
if (typeof (SqlServer2005Server).Equals(type))
{
x = new SqlServer2005Server();
}
// Return the Databases from the server
return x.GetDatabases();
}
El problema que estoy teniendo es que Server no se puede deserializar ya que es abstracto, ¿tengo que tener un método para cada servidor que tengo que hereda de la es decir, el tipo concreto
public List<Database> GetDatabases(SqlServer2005Server server)
{
// Return the Databases from the server
return SqlServer2005Serverx.GetDatabases();
}
public List<Database> GetDatabases(OracleServer server)
{
// Return the Databases from the server
return SqlServer2005Serverx.GetDatabases();
}
realmente agradecería su ayuda ya que no soy seguro cuál es la mejor solución
El error exacto que recibo es:
Las instancias de clases abstractas no pueden ser creados.
Gracias por su respuesta, ¿puedo agregar varios KnowTypes? es decir [DataContract] [KnownType (typeof (cliente))] [KnownType (typeof (Empleado))] [KnownType (typeof (Alien))] clase de contacto { ... muy apreciada Phill –
¿Esto también funciona con las clases de Resumen, puedo ver en su ejemplo que es una clase normal? Gracias de nuevo, Phill –
Hola Phil, si quieres necesitar puedes agregar tantos atributos de KnownType como necesites. Todo depende de la profundidad de su cadena de herencia. HTH. Buena suerte. – stephenl