c# - RESTful WCF Web 服务的 UriTemplate 前缀

标签 c# .net wcf web-services rest

我在 WCF 服务主机中有各种接口(interface)(端点),每个接口(interface)都用于完全不同的关注点。在经典的肥皂网络服务中,我能够定义一个基本主机地址(例如 http://myhost.com/)并将每个接口(interface)映射到一个相对 URI(IServiceContract -> service/, IMaintenanceContract -> maintenance/) 所以我可以通过例如调用它们http://myhost.com/service/mymethod

现在我正在迈出使用 JSON 作为 CRUD Web 请求的消息格式的 RESTful WCF 服务的第一步,我唯一看到的解决操作的方法是使用 UriTemplate 字段 WebInvoke(或 WebGet)属性。不幸的是,我似乎不能把它放在接口(interface)上,只能放在操作契约方法上。

如何将每个接口(interface)映射到不同的相对 URI

最佳答案

是的,您会将基本 url 放在 [OperationContract] 方法上。不过这没关系,因为您可以指定任何您想要的基本 url。下面是一个示例界面,可为您提供此控件。

namespace MyHostApi
{
    [ServiceContract]
    public interface IMyHostApi
    {

        [OperationContract]
        [WebGet(BodyStyle = WebMessageBodyStyle.Bare,
                UriTemplate = "WhateverYouWant/HelloWorld/{name}")]
        string HelloWorld(string format, string name);

    }
}

关于c# - RESTful WCF Web 服务的 UriTemplate 前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17837071/

相关文章:

c# - 这是设计 N 层的正确方法吗?

c# - 如何根据文件头识别doc、docx、pdf、xls、xlsx

.net - "Error ' System.Void Mono.Cecil.AssemblyDefinition::.ctor() ' is declared in another module and needs to be imported"

.net - 生成人类可读/可用、简短但唯一的 ID

visual-studio - 在 WCF 中设置 ClientCredentials 时出现 "Object is read only"错误

c# - 如何更改 .Net MVC 中 DateTime 模型 Binder 的默认输入格式?

.net - 具有非实体返回类型的实体模型中的函数导入

wpf - 请确认我对 WCF/WPF 结构的理解

python - 如何在 spyne 中使用多个装饰器

c# - 在不更改接口(interface)返回类型的情况下更改 WCF 中函数的返回类型