c# - 具有通用集合的 WCF REST 服务

标签 c# wcf rest

我正在尝试构建 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/

相关文章:

c# - ASP.NET Core API 版本控制具有 Major.minor 但仅在路径中包含 Major

c# - WCF 超时异常! mscorlib.dll 中出现类型为 'System.TimeoutException' 的异常

c# - Access-Control-Allow-Origin 在 IIS 中,但不工作

c# - 在关闭防火墙的情况下,WCF 发现在同一子网上的两台计算机之间不起作用

ajax - 我应该在我的网络应用程序中使用带有 PUT 和 DELETE 的 REST 样式 URL 吗?

c# - SQL Azure 连接因大型 json 字符串而关闭

c# - 指定 WPF 图表的最小和最大轴

rest - 在 Grails 中模拟 REST 服务的方式

php - file_get_contents() : SSL operation failed with code 1, 无法启用加密

c# - 偶遇不那么随机