У меня есть абстрактный класс «сервер», который я создаю в моей JavaScript в моем UI, а затем я хочу иметь метод на моем веб-службы, которая выполняет следующее:Deserialize Абстрактный класс
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();
}
вопрос, который я меня в том, что сервер не может быть десериализован как это является абстрактным, мне нужно иметь метод для каждого сервера я имею который наследуется от конкретного типа, т.е.
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();
}
Я очень ценю вашу помощь, как я не являюсь ли что самое лучшее решение
Точная ошибка я получаю это: не может быть создан
Экземпляры абстрактных классов.
Спасибо за ваш ответ, могу ли я добавить несколько KnowTypes. т.е. [DataContract] [KnownType (TypeOf (Заказчик))] [KnownType (TypeOf (Employee))] [KnownType (TypeOf (Чужой))] класс Contact { ... Много Оценил Phill –
Будет ли это также работать с абстрактными классами, я вижу, что в вашем примере это обычный класс? Еще раз спасибо, Phill –
Привет, Phil, если вы хотите, чтобы tyou мог добавить столько атрибутов KnownType, сколько вам нужно. Все зависит от глубины вашей цепи наследования. НТН. Удачи. – stephenl