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

Alo*_*ark -1 c# web-services

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

无法创建抽象类或接口'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);

Sac*_*nth 5

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

例如

hotelsProSvc.b2bHotelSOAPPortType a = new Concreteb2bHotelSOAPPortType();
Run Code Online (Sandbox Code Playgroud)

假设Concreteb2bHotelSOAPPortType实现了b2bHotelSOAPPortType.

更好的方法是在像Autofaq这样的DI容器中建立这两个类之间的关系.

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

interface b2bHotelSOAPPortType {

}
Run Code Online (Sandbox Code Playgroud)

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

abstract class b2bHotelSOAPPortType  {

}
Run Code Online (Sandbox Code Playgroud)

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

class Concreteb2bHotelSOAPPortType : b2bHotelSOAPPortType {

}
Run Code Online (Sandbox Code Playgroud)

如果您使用的是Visual Studio,您将能够非常轻松地找到哪些类实现此接口或抽象类.