我创建了一个.NET WebService。在那里,我实现了以下WebMethod:
[WebMethod]
public string CheckLicense(License license) {
return "";
}
Type License来自不同的Assembly X,我引用了WebService。许可证的完整类型是Prayon.Shared.Library.Licensing.License
现在,我已经构建了一个也引用Assembly X的客户端。当我尝试不使用CheckLincense调用WebService时:
private void CheckLicense(License license) {
using(var service = new Prayon.Service.Web.PrayonService()) {
service.CheckLicense(license);
}
}
service.CheckLicense()需要Type Prayon.Service.Prayon.Service.Web.License的对象。 我不知道我做错了什么。我该怎么办,我可以将Prayon.Shared.Library.Licensing.License类型的对象传递给service.CheckLicense()?
答案 0 :(得分:0)
您不应在Web服务和客户端之间共享程序集,而是从Web服务代理类型创建许可证实例(应该在service.x中找到)
答案 1 :(得分:0)
您需要从webserviceproxy而不是从asembly创建实例。 当您从客户端向webserice添加服务引用时,它将为您生成代理类。在这些内容中,您将定义许可证。使用此方法创建实例并传递它而不是直接从程序集引用。
答案 2 :(得分:0)
如果要在许可证对象中使用方法,则需要: 调用您的WebService,获取service.License对象,使用它来创建本地License对象的实例,之后您将获得具有由WebService答案填充的状态(属性)的“本地”许可证对象。 否则我不明白你为什么要使用'本地'许可证对象?