繁体   English   中英

C#:无法创建抽象类或接口的实例

[英]C#: Cannot create an instance of the abstract class or interface

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

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

这就是我想要做的。

表格1

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

在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,则可以轻松找到哪些类实现了此接口或抽象类。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM