Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法通过";使用命名空间;使用;_C#_.net_Wcf - Fatal编程技术网

C# 无法通过";使用命名空间;使用;

C# 无法通过";使用命名空间;使用;,c#,.net,wcf,C#,.net,Wcf,我有以下工作代码(用于使用WCF服务) SecurityRoleWebService是一个命名空间 SecurityWebserviceManagerImplClient是与WCF服务相对应的类 getSecurityRoles()是与服务操作相对应的方法 当我将名称空间添加为 using SecurityRoleWebService 我得到以下错误: 错误:找不到类型或命名空间名称“SecurityRoleWebService”(是否缺少using指令或程序集引用?) 为什么会这样?如何克

我有以下工作代码(用于使用WCF服务)

SecurityRoleWebService是一个命名空间

SecurityWebserviceManagerImplClient是与WCF服务相对应的类

getSecurityRoles()是与服务操作相对应的方法

当我将名称空间添加为

using SecurityRoleWebService 
我得到以下错误:

错误:找不到类型或命名空间名称“SecurityRoleWebService”(是否缺少using指令或程序集引用?)

为什么会这样?如何克服这个问题

SecurityRoleWebService.SecurityWebserviceManagerImplClient proxySecurityRole = new SecurityRoleWebService.SecurityWebserviceManagerImplClient();

        SecurityRoleWebService.SecurityRole[] roles = proxySecurityRole.getSecurityRoles(userID);

        string roleName = roles[0].roleName;

您是否在项目中引用了dll?如果没有,请右键单击您的项目,然后添加引用,然后选择您的dll。

您在项目中引用过dll吗?如果没有,请右键单击您的项目,然后添加引用,然后选择您的dll。

您在其中创建ServiceReference的项目的命名空间是什么?您可能需要在您的应用程序中使用“前缀”该命名空间:

using YourNamespaceHere.SecurityRoleWebService;

您在其中创建ServiceReference的项目的命名空间是什么?您可能需要在您的应用程序中使用“前缀”该命名空间:

using YourNamespaceHere.SecurityRoleWebService;

使用类的完整限定命名空间。使用ServiceReference时,生成的命名空间是
[项目的默认命名空间].[服务引用的名称]
。您必须在using中使用这个完全限定的命名空间

当您像使用
new SecurityRoleWebService.SecurityWebserviceManagerImplClient()一样为类添加前缀时可以使用相对命名空间(相对于代码块所在的命名空间)


当您使用它编写代码时,您不在具有名称空间的代码块中,因此没有与之相关的名称空间。必须使用完全限定的命名空间。

使用类的完全限定命名空间。使用ServiceReference时,生成的命名空间是
[项目的默认命名空间].[服务引用的名称]
。您必须在using中使用这个完全限定的命名空间

当您像使用
new SecurityRoleWebService.SecurityWebserviceManagerImplClient()一样为类添加前缀时可以使用相对命名空间(相对于代码块所在的命名空间)


当您使用它编写代码时,您不在具有名称空间的代码块中,因此没有与之相关的名称空间。您必须使用完整的限定命名空间。

Uhm SecurityRoleWebService是完整命名空间吗?它的前缀不是项目的名称空间吗?您尝试过完整的名称空间了吗?很抱歉,这是显而易见的,但听起来您需要引用定义SecurityRoleWebService的DLL。@Hinek谢谢。使用我的项目名称空间作为web服务名称空间的前缀进行了修复。你能把它作为答案贴出来吗?另外,你能解释一下为什么我以前的代码没有项目前缀就可以工作吗?@Lijo不客气,我很高兴它帮了我的忙,并试图在答案中解释。只要问问,如果还有什么不清楚的地方。嗯,SecurityRoleWebService是完整的名称空间吗?它的前缀不是项目的名称空间吗?您尝试过完整的名称空间了吗?很抱歉,这是显而易见的,但听起来您需要引用定义SecurityRoleWebService的DLL。@Hinek谢谢。使用我的项目名称空间作为web服务名称空间的前缀进行了修复。你能把它作为答案贴出来吗?另外,你能解释一下为什么我以前的代码没有项目前缀就可以工作吗?@Lijo不客气,我很高兴它帮了我的忙,并试图在答案中解释。问一下,如果还有什么不清楚的地方。哪个dll?我已使用添加服务引用将wsdl添加到项目中。哪个dll?我已经使用添加服务引用将wsdl添加到项目中。