-1

我正在使用 HotelsPro 的 Web 服务并尝试创建一个实例,但它给了我一个错误:

无法创建抽象类或接口“HotelsPro.hotelsProSvc.b2bHotelSOAPPortType”的实例

这就是我想要做的。

FORM1.CS

hotelsProSvc.b2bHotelSOAPPortType a = new b2bHotelSOAPPortType(); getAvailableHotelResponse getres = new getAvailableHotelResponse(); getres=a.getAvailableHotel(apiKey, "A990", checkIn, checkOut, "EUR", "UK", false, rooms, f);

4

2 回答 2

5

在 C# 中,无法创建抽象类或接口的实例。
b2bHotelSOAPPortType 是一个接口或一个抽象类。如果您打算以这种方式创建一个新对象(而不是使用依赖注入),那么您必须找到一个实现 b2bHotelSOAPPortType 的具体类new

例如

hotelsProSvc.b2bHotelSOAPPortType a = new Concreteb2bHotelSOAPPortType();

假设 Concreteb2bHotelSOAPPortType 实现 b2bHotelSOAPPortType。

更好的方法是在像 Autofaq 这样的 DI 容器中设置这两个类之间的关系。

如果 b2bHotelSOAPPortType 是一个接口,那么它将被实现

interface b2bHotelSOAPPortType {

}

如果它是一个抽象类,那么

abstract class b2bHotelSOAPPortType  {

}

您需要找到一个直接或间接实现 b2bHotelSOAPPortType 的类。如果它直接实现它,它将看起来像这样

class Concreteb2bHotelSOAPPortType : b2bHotelSOAPPortType {

}

如果您使用的是 Visual Studio,您将能够很容易地找到实现此接口或抽象类的类。

于 2013-09-20T14:25:56.973 回答
3

抽象类或接口不能被实例化。

您必须实例化一个继承自此类(或实现该接口)的类。

于 2013-09-20T14:27:03.813 回答