RESTful C#WCF发布功能

时间:2012-11-04 21:03:35

标签: c# wcf rest

我使用C#创建了一个非常简单的RESTful Web服务。我有一个ADO.NET实体模型和一个WCF数据服务。这适用于检索远程应用程序上的信息。我现在正在尝试创建一个RESTful函数,它对发布的数据做出反应并将其添加到我的数据库中。这是我到目前为止共享数据的代码:

namespace WcfService10
{
    public class GetInformation : DataService<DBLocalEntities>
    {
        // This method is called only once to initialize service-wide policies.
        public static void InitializeService(DataServiceConfiguration config)
        {
            // TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
            // Examples:
            config.SetEntitySetAccessRule("users", EntitySetRights.AllRead);
            // config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All);
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
        }
    }
}

为了添加一种处理发布信息到我的休息服务的方法,我该如何处理?它是否像添加WCF服务一样简单,还是应该通过REST工作?

1 个答案:

答案 0 :(得分:0)

将实体访问规则设置修改为:

 config.SetEntitySetAccessRule("users", EntitySetRights.All);

在您的客户端代码中,您可以像在EF中一样向实体添加项目。

DBLocalEntities client = new DBLocalEntities(URI);
User newUser = new User()
    {
        //Set values to properties
    }
client.AddTousers(newUser);
client.SaveChanges();

这将自动生成适当的URI以发布数据。它以RESTful方式完成,但HTTP方法是从我们中抽象出来的。您也可以像EF一样修改和删除值。