当我尝试在WCF服务应用程序中使用“var”时,它给出错误“找不到类型或命名空间名称'var'(您是否缺少using指令或程序集引用?)”
答案 0 :(得分:62)
如果您尝试在类成员中使用var
,则会出现此错误,例如:
public class Foo
{
var a = 4;
}
var
只能在方法中使用,而不能在类,字段或方法签名中使用。
答案 1 :(得分:5)
我想是因为你在c#4.0之前定位了一个框架。尝试转到项目属性并将目标框架设置为4.0
答案 2 :(得分:3)
对于我的ASP.NET 3.5项目,我必须确保在web.config文件中设置了3.5框架编译器,如:
<system.codedom>
<compilers>
<compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<providerOption name="CompilerVersion" value="v3.5"/>
<providerOption name="WarnAsError" value="false"/>
</compiler>
</compilers>
</system.codedom>
答案 3 :(得分:2)
我在这里猜测,但是:var
可能只用于局部变量(方法内)。
您是否使用它来定义实例变量?
答案 4 :(得分:0)
您应确保为.NET 3.5或更高版本构建服务。之前不支持“var”关键字。
答案 5 :(得分:0)
也许您不小心从一个您不期望的目录中拨打public class AccountController : Controller
{
public UserManager<YourUserIdentity> UserManager { get; private set; }
public SignInManager<YourUserIdentity> SignInManager { get; private set; }
public AccountController(UserManager<YourUserIdentity> userManager,
SignInManager<YourUserIdentity> signInManager)
{
UserManager = userManager;
SignInManager = signInManager;
}
public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = null)
{
if (ModelState.IsValid)
{
var user = await UserManager.FindByNameAsync(model.UserName);
await UserManager.AddClaimAsync(user, new Claim("your-claim", "your-value"));
var signInStatus = await SignInManager.PasswordSignInAsync(user, model.Password, model.RememberMe, lockoutOnFailure: false);
if (signInStatus.Succeeded)
return RedirectToLocal(returnUrl);
ModelState.AddModelError("", "Invalid username or password.");
return View(model);
}
// If we got this far, something failed, redisplay form
return View("Index", new LoginPageViewModel() { Login = model });
}
}
?我通过使用完整路径运行csc.exe
来解决问题:
csc.exe