基本上,
我有一个客户端控制台,使用我定义的一个名为" Part"的类。该类保存在共享库中。
<Serializable()> _
Public Class Part()
Public Property Success As Boolean = False
Public Property ExportID As Integer = 0
end class
我还有一个web服务(或者我已经尝试了两种WCF),它有一个方法,它采用了一个&#34; Part&#34;对象作为参数。也取自共享库。
objService.AddPart(objPart)
但是,当我尝试在客户端调用此方法时,它会犯错并告诉我,SharedClass.Part类型的对象无法转换为WebSerivce.Part?
<WebMethod()>
Public Function AddPart(Byval objPart as Part) As Boolean
End Function
我99%确定我已经错过了一步,但对于我的生活,我无法解决这个问题。上面的代码是为了说明目的而编写的,所以可能是错误的。
答案 0 :(得分:1)
如果是WCF,请确保使用“DataContract”装饰“Part”类。它是具有“DataMember”属性的属性。对于Web服务,我认为您不需要做任何额外的事情。
这是一个示例Web服务,
using System.Web.Services;
namespace WebServiceWithJson
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class SayHelloService
{
[WebMethod]
public string GreetingsWithObj(SayHelloDto ObjSayHelloDto)
{
return ObjSayHelloDto.Greeting + " " + ObjSayHelloDto.Name;
}
}
public class SayHelloDto
{
public string Greeting { get; set; }
public string Name { get; set; }
}
}
添加引用,这就是你可以使用的方式,
using System;
using SayHelloSvcConsumer.SayHelloServiceReference;
namespace SayHelloSvcConsumer
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
var ObjSayHelloService = new SayHelloServiceSoapClient();
var ObjSayHelloDto = new SayHelloDto
{
Greeting = "Hello",
Name = "Rasmita"
};
var GreetingMsg = ObjSayHelloService.GreetingsWithObj(ObjSayHelloDto);
Response.Write(GreetingMsg);
}
}
}
如果您可以发布任何服务的示例代码,那会更好。 希望它会有所帮助