Ответ 1
Это случилось и со мной.
Я сделал это:
- Удалить System.Service.Web из ссылок
- Построить
- Очистить проект
- Добавить System.Service.Web в список литературы
- Построить
.. и VS нашел это??
Я работаю над проектом REST WCF, и когда я реализую следующий код, он жалуется, что он не может разрешить класс WebGet? Что мне не хватает?
Я попытался импортировать пространство имен System.ServiceModel.Web, но оно не может найти его, даже если я ссылаюсь на него. "Web" в System.ServiceModel.Web не регистрируется, когда я регистрирую его в инструкции using поверх моего кода.
В принципе, что мне нужно для реализации таких концепций REST WCF, как WebGet, WebInvoke, UriTemplate и т.д.
ОБНОВЛЕНИЕ:. После некоторой обратной связи и размышления об этом немного больше, что я сделал, кажется, что DLL (System.ServiceModel и System.ServiceModel.Web) не возникают через окно "Добавить ссылку", когда я иду, чтобы добавить ссылку на проект. Когда я впервые запустил проект, FYI, так как эти сборки сначала не появились, я пошел "искать" их и скопировал их во временную папку, чтобы я мог ссылаться на них, и, следовательно, я думаю, что у меня возникают проблемы с решением проблемы, Итак, теперь, когда я нахожусь на этом этапе, как я могу заставить свой VS распознавать/регистрировать эти DLL файлы DLL WCF? Спасибо!
ОБНОВЛЕНИЕ: Я считаю, что я обновляюсь во всем: разработка на VS 2008 SP1 - я пытаюсь загрузить последние версии SP, загрузив REST Preview 2 Starter Kit, разработав версию 3.5 Framework, пытаясь создать слой REST WCF, который в конечном итоге будет потреблен клиентом Silverlight 2.
Это то, что у меня есть:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using UtilityClasses;
using Microsoft.ServiceModel.Web;
using Microsoft.Http;
namespace WcfRestService
{
[ServiceContract]
public interface IRestService
{
[OperationContract(Name = "Add")]
[WebGet(UriTemplate = "/")] // ** can't compile here **
int Add();
}
}
Любой совет будет очень благодарен.
Это случилось и со мной.
Я сделал это:
.. и VS нашел это??
Вам нужно обратиться к DLL System.ServiceModel.Web.
Щелкните правой кнопкой мыши папку "Ссылки" в вашем проекте и выберите "Добавить ссылку...". Прокрутите вниз до System.ServiceModel.Web и нажмите "ОК".
Как раз одна мысль, вы можете ориентировать свой проект на .Net Client Profile, который предоставляет ограниченные пространства имен. вам может потребоваться проверить настройку целевой структуры в ваших свойствах проекта.
Я столкнулся с тем, что проект WCF не нашел System.ServiceModel.Web до тех пор, пока я не изменил настройки фрейма по умолчанию.
НТН
В "свойствах проекта" убедитесь, что для вашей целевой среды установлено:.NET Framework 4
а не: Профиль клиента .NET Framework 4 или любая более низкая версия .NET.
Также, если возможно, используйте VS 2010.
- DBJ
По умолчанию целевая структура - это клиентский профиль .NET Framework 4, поэтому вы не можете найти System.ServiceModel.Web.
используя System.ServiceModel.Web;
У меня была та же проблема.
Я добавил эту недостающую ссылку:
System.ServiceModel.Web
и эта строка кода:
using System.ServiceModel.Web;
и все решили!;)
В моем случае мой проект строился, несмотря на это предупреждение, в дизайнерском представлении класса обслуживания. Не очень большая проблема, но все еще довольно раздражает. Понял, что это было просто ReSharper - он не обновил свой внутренний кеш, когда ссылка на System.ServiceModel
была добавлена автоматически VS, когда я добавил новую службу WCF. Я отключил анализ кода в реальном времени в:
Инструменты → Параметры → Resharper Ultimate → Опции → Проверка кода- > Настройки → Включить анализ кода
Это восстановило встроенный анализ кода VS, и проблема была исправлена сразу.
Если вы предпочитаете использовать анализ кода ReSharper, очищая кеш в:
Инструменты → Параметры → Resharper Ultimate → Параметры → Окружающая среда → Общие → Очистить кеши
может также сортировать проблему.