现在灌水太厉害。lz采纳了之前的回答,可以写给你。
用apache的工具把wsdl 转换成你的c#代码 然后你就知道怎么调用了。
dasdfdsfsa
用apache的工具把wsdl 转换成你的c#代码 然后你就知道怎么调用了。
我也不懂,求解求解求解求解!
IService C#端代码
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Threading.Tasks;
namespace Mimo.ImageProcess.Service
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
[ServiceContract]
public interface IService
{
[OperationContract]
Task<MessageResult> MakeImage(MessageMakeImage message);
[OperationContract]
Task<MessageResult> MakeImageWithOutCrop(MessageMakeImage message);
[OperationContract]
Task<MessageResult> MakeImageRotate(MessageMakeImageRotate message);
[OperationContract]
Task<MessageResult> MakePngImage(MessageMakeImage message);
[OperationContract]
Task<MessageResult> MakeLogoImage(MessageMakeImage message);
[OperationContract]
Task<MessageResult> MakeImageCustom(MessageMakeImageCustom message);
}
// 使用下面示例中说明的数据约定将复合类型添加到服务操作。
// 可以将 XSD 文件添加到项目中。在生成项目后,可以通过命名空间“Mimo.ImageProcess.Service.ContractType”直接使用其中定义的数据类型。
[DataContract]
public class CompositeType
{
private bool boolValue = true;
private string stringValue = "Hello ";
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
}
makeImage(也是我要调用的那个接口方法)代码
namespace Mimo.ImageProcess.Service
{
[MessageContract]
public class MessageMakeImage : MessageStream
{
}
}
MessageStream的具体代码
using System.IO;
using System.ServiceModel;
namespace Mimo.ImageProcess.Service
{
[MessageContract]
public class MessageStream
{
[MessageBodyMember]
public Stream SourceStream { get; set; }
[MessageHeader]
public string SavePath { get; set; }
}
}
是这样的,java端不能正确序列化wcf需要的stream类型。解决办法是,让java端用string,16进制字符串作为参数,C#这里稍微做一个包装