과제를 진행 중이며 이해가 안되는 오류가 발생합니다. 나는 작동중인 서비스를위한 WCF 클라이언트를 작성 중이다. 누구든지 나를 도울 수 있습니까? 당신이 당신의 테스트 프로그램에 서비스 참조를 추가 한 경우WCF 클라이언트에서 잘 모르겠다 오류가 발생합니다.
Error: The best overloaded method match for 'NETProxyWCFClient.ProxyTypes.CalculatorClient.complex_sum(NETProxyWCFClient.ProxyTpes.MyComplex,NETProxyWCFClient.ProxyTpes.MyComplex)' has some invalid arguments
코드 내 프로그램
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();
}
}
}
이 코드가 모두 하나의 프로젝트에 포함되어 있는지 여부는 코드에서 100 % 명확하지 않습니다. WCF 프로젝트와 콘솔 EXE라는 두 개의 프로젝트가 있습니까? 그렇지 않은 경우 : vars 1과 2의 감속도에서 네임 스페이스로 완전 자격을 얻으십시오. HTH –
이것은 클라이언트를위한 코드입니다 ... 제가 작성한 서비스도 똑같은 클래스와 인터페이스를 가지고 있습니다 .. 두 콘솔 프로젝트 – user975044
테스트 프로그램에 서비스 참조를 추가했다면 다음과 같은 proxt 클래스가 있습니다. 생성됩니다. ICalculator에서 명시 적으로 정의 된 코드 (작성한 코드)를 제거합니다. NETProxyWCFClient.ProxyTpes.MyComplex, NETProxyWCFClient.ProxyTpes 네임 스페이스 아래에 이미 프로젝트에 있습니다. –