C# WCF服务有一个返回类型,但客户端看到另一个

C# WCF服务有一个返回类型,但客户端看到另一个,c#,wcf,return,C#,Wcf,Return,mi wcf服务有一个名为Richiedicarta的函数,它返回一个列表,但当我在客户端实现它时,它表示它无法隐式转换type system.collections.generics.List中的类型字符串。 下面是WCF函数代码 public List<string> richiedicarta(int utilcode) { List<string> card = new List<string>(); Rando

mi wcf服务有一个名为Richiedicarta的函数,它返回一个列表,但当我在客户端实现它时,它表示它无法隐式转换type system.collections.generics.List中的类型字符串。 下面是WCF函数代码

public List<string> richiedicarta(int utilcode)
    {
        List<string> card = new List<string>();
        Random rand = new Random();
        switch (utilcode)
        {
            case 0:
                for (int i = 0; i < 4; i++)
                {
                    int indice = rand.Next(0, max-1);
                    card.Add(carta[indice]);
                    carta.Remove(carta[indice]);
                    max--;
                    return card;
                }
                break; //prima mano
            case 1: briscola = carta[rand.Next(0, max-1)]; card.Add(briscola); max--; break; //briscola
            case 2: if (carta.Count == 0) { card.Add(briscola); } else { card.Add(carta[rand.Next(0, max-1)]); } max--; break; //nuova mano
        }
        return card;
    }
static List<String> ricevicarte(int param)
    {

        List<string> carte = cl.richiedicarta(param); // here it gives that error

        List<String> cards = null;
        for(int i=0; i<3; i++)
        {
            if(carte[i]==" ")
            {
                carte[i] = null;
            }
            else
            {
                cards.Add(carte[i]);
            }
        }
        return cards;
    }
public List richiedicarta(int-utilcode)
{
列表卡=新列表();
Random rand=新的Random();
开关(utilcode)
{
案例0:
对于(int i=0;i<4;i++)
{
int indice=下一个随机数(0,最大值-1);
卡片添加(卡片[标识]);
carta.Remove(carta[indice]);
马克斯;
回程卡;
}
break;//prima mano
案例1:briscola=carta[rand.Next(0,max-1)];card.Add(briscola);max--;break;//briscola
案例2:if(carta.Count==0){card.Add(briscola);}else{card.Add(carta[rand.Next(0,max-1)];}max--;break;//nuova mano
}
回程卡;
}
这是客户端函数代码

public List<string> richiedicarta(int utilcode)
    {
        List<string> card = new List<string>();
        Random rand = new Random();
        switch (utilcode)
        {
            case 0:
                for (int i = 0; i < 4; i++)
                {
                    int indice = rand.Next(0, max-1);
                    card.Add(carta[indice]);
                    carta.Remove(carta[indice]);
                    max--;
                    return card;
                }
                break; //prima mano
            case 1: briscola = carta[rand.Next(0, max-1)]; card.Add(briscola); max--; break; //briscola
            case 2: if (carta.Count == 0) { card.Add(briscola); } else { card.Add(carta[rand.Next(0, max-1)]); } max--; break; //nuova mano
        }
        return card;
    }
static List<String> ricevicarte(int param)
    {

        List<string> carte = cl.richiedicarta(param); // here it gives that error

        List<String> cards = null;
        for(int i=0; i<3; i++)
        {
            if(carte[i]==" ")
            {
                carte[i] = null;
            }
            else
            {
                cards.Add(carte[i]);
            }
        }
        return cards;
    }
静态列表ricevicote(int参数)
{
List carte=cl.richiedicarta(param);//这里给出了错误
列表卡=空;

对于(int i=0;i更新您的
服务引用
。确保取消选中“引用程序集中的重用类型”复选框,并将新服务的地址放入“地址”文本框。

错误是什么?客户端的WCF代理合约看起来像什么?看起来像是合约不匹配。无法隐式转换类型类型system.collections.generics.List中的字符串。很抱歉,我写的问题不好,我写了,它已经工作了,但现在返回类型是“BriscolaService.RichiedCartResponse”,它不会接受我的参数,因为“无法将int转换为briscolaWCFdef_Client.BriscolaService.RichiedCartRequest”您需要创建该类型的对象并分配属性,然后passi发现我选中了“始终生成消息契约”,没有它,它不需要该类型的对象,但我的WCF函数的返回提示已从字符串更改为字符串[],问题仍然存在。问题中写入了它