Phi*_*ffy 5 .net c# wcf abstract-class exception-handling
我有一个抽象类'Server',我在我的UI中用我的JavaScript创建,然后我想在我的Web服务上有一个方法,它执行以下操作:
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();
}
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是服务器无法反序列化,因为它是抽象的,我是否需要为每个从具体类型继承的服务器获取方法,即
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();
}
Run Code Online (Sandbox Code Playgroud)
我真的很感谢你的帮助,因为我不确定什么是最好的解决方案
我收到的确切错误是:
无法创建抽象类的实例.
WCF将支持继承,但您需要使用已知类型attibute来装饰数据协定.例如:
[DataContract]
[KnownType(typeof(Customer))]
class Contact
{
[DataMember]
public string FirstName
{get;set;}
[DataMember]
public string LastName
{get;set;}
}
[DataContract]
class Customer : Contact
{
[DataMember]
public int OrderNumber
{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
HTH.