当前上下文中不存在名称“HttpContext”
Posted
技术标签:
【中文标题】当前上下文中不存在名称“HttpContext”【英文标题】:The name 'HttpContext' does not exist in the current context 【发布时间】:2011-10-19 21:30:00 【问题描述】:我正在尝试将一些 vb.net 转换为 C#,但我不断收到错误。目前,我收到标题中的错误。
问题线是:
string[] strUserInitials = HttpContext.Current.Request.ServerVariables("LOGON_USER").Split(Convert.ToChar("\\"));
有人知道为什么会这样吗?
我正在开发一个网络服务(asmx 文件)。
我在代码顶部有以下内容:
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
【问题讨论】:
因为它是一个WebService,你可以尝试使用OperationContext
来代替吗?
我现在收到The name 'OperationContext' does not exist in the current context
。
我认为是下面@alun 发布的 [] 括号
【参考方案1】:
你必须引用 System.Web 并导入命名空间 System.Web:
using System.Web;
我根本不会使用 Convert:
string[] strUserInitials = System.Web.HttpContext.Current.Request.ServerVariables["LOGON_USER"].Split('\\'));
【讨论】:
【参考方案2】:将using System.Web;
和using System;
放入源文件...
【讨论】:
【参考方案3】:你需要 [] 而不是 ():
string[] strUserInitials = System.Web.HttpContext.Current.Request.ServerVariables["LOGON_USER"].Split(System.Convert.ToChar(@"\"));
【讨论】:
现在得到The name 'Convert' does not exist in the current context
Convert 位于系统命名空间中,因此要么将其更改为 System.Convert,要么使用 System 添加;
@shirowanen:你为什么使用 Convert?使用'\\'。
添加System.Web.dll
参考,检查如何做到这一点here,希望对一些人有所帮助。以上是关于当前上下文中不存在名称“HttpContext”的主要内容,如果未能解决你的问题,请参考以下文章