ChannelBase中缺少调用方法

时间:2018-08-20 06:00:42

标签: ios xamarin.forms proxy

我正在使用Xamarin.Forms开发适用于android和ios的应用程序。在iOS上运行时,在调用WCF时收到以下错误消息:

  

MonoTouch不支持动态代理代码生成。覆盖此方法或其调用方以返回特定的客户端代理实例

因此,我根据Monotouch/WCF: How to consume the wcf service without svcutil创建了此方法:

    protected override IService1 CreateChannel()
    {
        return new Service1ClientChannel(this);
    }

这导致我不得不创建Service1ClientChannel类。然后,通过相同的链接,我实现如下方法:

        public CheckIfUserNameExistsResponse CheckIfUserNameExists(CheckIfUserNameExistsRequest request)
    {
        object[] _args = new object[1];
        _args[0] = request;
        return (CheckIfUserNameExistsResponse)base.Invoke("CheckIfUserNameExists", _args);
    }

我遇到的问题是:base.Invoke不存在。仅base.BeginInvoke和base.EndInvoke。那我在做什么错?为什么在上面的链接中他们可以访问“调用”?当我检查ChannelBase定义时,没有“调用”。每个链接应该存在:https://docs.microsoft.com/en-us/dotnet/api/system.servicemodel.clientbase-1.channelbase-1.invoke?view=xamarinandroid-7.1&viewFallbackFrom=netframework-4.7.2

1 个答案:

答案 0 :(得分:0)

我刚刚实现了“开始/结束”调用集。 仍然找不到更好的解决方案。但是此解决方案在以后的工作中效果很好。