Подтвердить что ты не робот

Тип или имя пространства имен "var" не удалось найти в приложении службы WCF

Когда я пытаюсь использовать "var" в приложении службы WCF, он дает ошибку "Невозможно найти имя типа или пространства имен" var "(вам не хватает директивы using или ссылки на сборку?)"

4b9b3361

Ответ 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.