qq_31826603
roadsides
采纳率75%
2017-12-04 03:05 阅读 1.4k

CXF 调用 C# 的 WCF 服务接口

50

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

7条回答 默认 最新

  • 已采纳
    caozhy 从今以后生命中的每一秒都属于我爱的人 2017-12-04 04:28

    现在灌水太厉害。lz采纳了之前的回答,可以写给你。

    点赞 评论 复制链接分享
  • qq454034423 龍龍2017 2017-12-04 03:12

    用apache的工具把wsdl 转换成你的c#代码 然后你就知道怎么调用了。

    点赞 评论 复制链接分享
  • huangxuestarrysky huangxuestarrysky 2017-12-04 03:24

    dasdfdsfsa

    点赞 评论 复制链接分享
  • qq_39895214 qq_39895214 2017-12-04 03:27

    用apache的工具把wsdl 转换成你的c#代码 然后你就知道怎么调用了。

    点赞 评论 复制链接分享
  • qq_41266401 qq_41266401 2017-12-04 03:53

    我也不懂,求解求解求解求解!

    点赞 评论 复制链接分享
  • qq_31826603 roadsides 2017-12-04 05:13

    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; }
        }
    }
    
    点赞 评论 复制链接分享
  • caozhy 从今以后生命中的每一秒都属于我爱的人 2017-12-04 05:19

    是这样的,java端不能正确序列化wcf需要的stream类型。解决办法是,让java端用string,16进制字符串作为参数,C#这里稍微做一个包装

    点赞 评论 复制链接分享

相关推荐