CXF 调用 C# 的 WCF 服务接口

图片说明,试问这一块接口要怎么写

现在灌水太厉害。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#这里稍微做一个包装