类型或名称空间"MyServiceClient"找不到

本文关键字:quot MyServiceClient 找不到 空间 类型 | 更新日期: 2023-09-27 18:15:13

我刚刚完成了这个wcf双工教程,但是在检查我的代码时,我遇到了这个错误:

Severity    Code    Description   Line
Error   CS0246  The type or namespace name 'MyServiceClient' could not be found (are you missing a using directive or an assembly reference?) ClientSide 15

我的使用似乎都是有序的,我已经在谷歌上搜索了这个错误很多次,没有运气。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.ServiceModel;
namespace ClientSide
{
    class Program
    {
        static void Main(string[] args)
        {
            InstanceContext callback = new InstanceContext(new ClientCallback());
            MyServiceClient client = new MyServiceClient(callback);
            client.Open();
            client.Register();
            Console.WriteLine("Press a key to exit");
            Console.ReadKey();
            client.Close();
        }
    }
}

MyServiceClient是类型还是名称空间?

任何帮助将不胜感激,我使用的是Visual Studio 2015。

类型或名称空间"MyServiceClient"找不到

在这种情况下,MyServiceClient应该是当您执行"Add Service Reference"时生成的客户端类的名称。

要验证生成的类的名称,在windows资源管理器中导航到包含服务引用的目录(通常例如<ProjectName>'Service References'<ServiceReferenceName>),并打开文件Reference.cs

在Reference.cs中,寻找从System.ServiceModel.ClientBase继承的类。派生类是您应该用来与web服务交互的服务客户端类。

因此,例如,如果Reference.cs包含

public partial class BlahServiceSoapClient : System.ServiceModel.ClientBase<global::MyProject.MyService.BlahServiceSoap>, global::MyProject.MyService.BlahServiceSoap

注意,根据引用的不同,它可能是您在reference .cs文件中看到的System.ServiceModel.ClientBase的不同子类。由于这个问题是专门关于双工客户机的,因此您将看到System.ServiceModel.DuplexClientBase

那么您的服务类将是BlahServiceSoapClient,因此您将执行

BlahServiceSoapClient client = new BlahServiceSoapClient(callback);