Когда я пытаюсь использовать "var" в приложении службы WCF, он дает ошибку "Невозможно найти имя типа или пространства имен" var "(вам не хватает директивы using или ссылки на сборку?)"
Тип или имя пространства имен "var" не удалось найти в приложении службы WCF
Ответ 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.