0

我正在处理一项任务,我收到了这个我不明白的错误。我正在为工作服务编写 WCF 客户端。有谁可以帮我离开这里吗?

此行抛出错误:

MyComplex sumcplx = proxy.complex_sum(one,two);

我得到的错误

错误:“NETProxyWCFClient.ProxyTypes.CalculatorClient.complex_sum(NETProxyWCFClient.ProxyTpes.MyComplex,NETProxyWCFClient.ProxyTpes.MyComplex)”的最佳重载方法匹配有一些无效参数

我的程序的代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.Runtime.Serialization;
using System.ServiceModel.Description;

namespace NETProxyWCFClient
{
    [DataContract]
    public class MyComplex
    {
        int real;
        [DataMember]
        public int Real
        {
            get { return real; }
            set { real = value; }
        }
        [DataMember]
        int im;
        public int Im
        {
            get { return im; }
            set { im = value; }
        }

    }
    [ServiceContract]
    interface ICalculator
    {
        [OperationContract]
        int mult(int a, int b);

        [OperationContract]
        List<int> fib(int n);

        [OperationContract]
        MyComplex complex_sum(MyComplex a, MyComplex b);
    }
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Enter in 2 numbers");
            string read = Console.ReadLine();
            string[] numbers = read.Split(' ');
            int m = int.Parse(numbers[0]);
            int n = int.Parse(numbers[1]);

            ProxyTypes.CalculatorClient proxy = new ProxyTypes.CalculatorClient();


            //Multiplcation
            int sum = proxy.mult(m, n);
            Console.WriteLine(sum.ToString());


            //Mycomplex
            MyComplex one = new MyComplex();
            one.Im = m;
            one.Real = n;

            MyComplex two = new MyComplex();
            two.Im = n;
            two.Real = m;

            MyComplex sumcplx = proxy.complex_sum(one,two);
            Console.WriteLine(sumcplx.Im + " , " + sumcplx.Real);

            //fib one
            int[] listM = proxy.fib(m);
            foreach (int listItem in listM)
            {
                Console.Write(listItem.ToString() + " ");
            }
            Console.WriteLine("");

            //fib 2
            int[] listN = proxy.fib(n);
            foreach (int listItem in listN)
            {
                Console.Write(listItem.ToString() + " ");
            }

            Console.ReadLine();




        }
    }
}
4

1 回答 1

2

如果您在测试程序中添加了服务引用,则会为您生成一个 proxt 类,因此如果您明确定义了 ICalculator(您编写的代码),请将其删除。它已经在您的项目中,位于 NETProxyWCFClient.ProxyTpes.MyComplex,NETProxyWCFClient.ProxyTpes 命名空间下。

于 2012-06-03T00:54:23.643 回答