我正在尝试构建 Restful WCF 服务。在我的 WCF 服务中,我引用了 1 个包含数据访问层的 dll。
我的 WCF 类中有以下方法
public class Search : ISearch
{
public List<Product> GetProductList()
{
ProductDA dataAccess = new ProductDA();
List<Product> obj = new List<Product>();
obj = dataAccess.GetProducts();
return obj;
}
}
我的接口(interface)保存 OPerationContract 如下:
[ServiceContract]
public interface ISearch
{
[OperationContract]
[WebGet(UriTemplate = "getProductList", RequestFormat = WebMessageFormat.Xml, ResponseFormat WebMessageFormat.Xml)]
List<Product> GetProductList();
}
当我运行 url http://localhost:36741/RestService/Search.svc/getFoodTruckNameList 时在浏览器中我收到以下错误: 服务器处理请求时遇到错误
有谁知道调用List<Product> GetProductList();
的[OperationContract]的正确代码吗? ?
提前致谢。一段时间以来我一直在为这个烦恼。
最佳答案
看看我的 RESTful Web 服务执行类似的操作,我通常会执行更接近的操作:
[CollectionDataContract]
public class Products : List<Product>
{
public Products(IEnumerable<Product> products) : base(products) { }
}
那么你的界面将是这样的:
[ServiceContract]
public interface ISearch
{
[OperationContract]
[WebGet(UriTemplate = "getProductList", RequestFormat = WebMessageFormat.Xml, ResponseFormat WebMessageFormat.Xml)]
Products GetProductList();
}
然后您的服务契约(Contract)将如下所示:
public class Search : ISearch
{
public Products GetProductList()
{
return new Products(new ProductDA().GetProducts());
}
}
关于c# - 具有通用集合的 WCF REST 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9914391/