#.net #wcf #rest #.net-4.0 #webinvoke
#.net #wcf #rest #.net-4.0 #веб-вызов
Вопрос:
Ниже приведен код, который я использую в своем тестовом приложении:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using System.ServiceModel.Description;
using System.IO;
namespace MyWCFServices
{
[ServiceContract]
interface IHelloWorldService
{
[OperationContract]
String GetMessage(String name);
//[OperationContract]
//[WebInvoke(Method = "PUT",UriTemplate = "File/{fileName}")]
//[WebContentType("application/octet-stream")]
// bool UploadFile(string fileName, Stream fileContents);
[OperationContract]
[WebInvoke(UriTemplate = "UploadFile/{fileName}")]
void UploadFile(string fileName, Stream fileContent);
}
}
Это выдает ошибку и при компиляции для webinvoke. Есть идеи по этому поводу??
Ответ №1:
WebInvokeAttribute
находится в отдельной системе сборки.ServiceModel.Web.dll . Вы ссылались на эту сборку? Также вы должны добавить using System.ServiceModel.Web;
Редактировать:
Чтобы использовать System.ServiceModel.Web.dll в сборке вы должны использовать как минимум .NET 3.5 и вы не можете использовать профиль клиента .NET 4.0.
Комментарии:
1. Какую версию .NET / WCF вы используете?
2. Я использую .NET 4.0 (не профиль клиента 4.0)
3. Я никогда не слышал об
WebContentType
атрибуте и, насколько я знаю, он не является частью WCF.4. Какой тип проекта вы используете?
5. @Ladislav: Я сталкиваюсь с той же проблемой. Кроме того, я не вижу ссылки на System. ServiceModel. Веб-страница в диалоговом окне добавления ссылки. Я использую Visual Studio 2010 (.net 4.0). Можете ли вы мне помочь, если я чего-то не понимаю??