Тип или имя пространства имен "var" не удалось найти в приложении службы WCF
Когда я пытаюсь использовать "var" в приложении службы WCF, он дает ошибку "Невозможно найти имя типа или пространства имен" var "(вам не хватает директивы using или ссылки на сборку?)"
Ответы
Ответ 1
Вы получаете эту ошибку, если пытаетесь использовать var
в члене класса, например:
public class Foo
{
var a = 4;
}
var
может использоваться только внутри метода, а не в классах, полях или методах.
Смотрите также: Почему нет var в полях?
Ответ 2
Я бы мог подумать, потому что ваш таргетинг на инфраструктуру до С# 4.0. Попытайтесь перейти к свойствам ваших проектов и установить целевую структуру в 4.0
Ответ 3
Для моего проекта ASP.NET 3.5 я должен был убедиться, что у меня есть компилятор 3.5 framework в моем файле web.config, например:
<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>
Ответ 4
Я беру здесь дикое предположение, но: var
может использоваться только для локальных переменных (внутри метода).
Используете ли вы его для определения переменных экземпляра?
Ответ 5
Вы должны убедиться, что вы создаете свой сервис для .NET 3.5 или выше. Ключевое слово "var" ранее не поддерживалось.
Ответ 6
Может быть, вы случайно вызываете csc.exe
из каталога, которого вы не ожидаете? Я решил проблему, выполнив csc.exe
с помощью полного пути:
set csc=c:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe
%csc% try.cs
rem This was wrong:
set path=%path%;c:\Windows\Microsoft.NET\Framework\v4.0.30319
csc.exe
rem This shows csc version, which turned out to be from Framework 2.0.