我正在使用 C# Visual Studio 2012 创建 wcf 服务。
我让 WSCF.blue 工具从 xsd-s 生成 wsdl。然后我使用相同的工具生成了 Web 服务代码。WSCF.blue 不创建服务契约和数据契约。它创建一个接口和一个包含实现该接口的类的 .svc 文件。
在生成 Web 服务代码时,我选择了创建抽象类的选项,因为我希望能够将这些类的实现保存在单独的文件中。
抽象类如下所示:
[KnownType(typeof(WebMobileImplementation))]
public abstract class WebMobile : IWebMobile
{
public abstract PutLocationsResponse PutLocations(PutLocationsRequest request);
}
实现类(在不同的文件中)看起来像这样(现在):
public class WebMobileImplementation : WebMobile
{
public override PutLocationsResponse PutLocations(PutLocationsRequest request)
{
PutLocationsResponse response = new PutLocationsResponse();
return response;
}
}
尝试浏览服务时,我收到消息:“服务实现类型是一个接口或抽象类,没有提供实现对象”我认为将 knowntype 添加到实现类就可以了,但似乎实现不是运行服务时“看到”。我还能做些什么来“连接”它们?