WCF数据服务和url参数

时间:2019-07-14 20:54:16

标签: wcf-data-services url-parameters

我创建了一个服务std::vector<T> arr,在我的Visual Studio项目中添加了WCF服务项目。它的定义如下:

service.svc

和上下文:

public class Service : DataService<MyContext>
{
    public static void InitializeService(DataServiceConfiguration config)
    {
        config.UseVerboseErrors = true;
        config.SetEntitySetAccessRule("Items", EntitySetRights.AllRead);
        config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
    }

    protected override void HandleException(HandleExceptionArgs args)
    {
        Email.SendErrorToDeveloper(args.Exception);
        base.HandleException(args);
    }
}

按照定义,服务是通过调用public class MyContext { public IQueryable<Item> Items { get { return something; } } } 来使用的。

我很想知道是否可以将参数添加到url,以便在服务器端使用它们来过滤项目。例如http://localhost:53407/Service.svc/Items
可能吗?怎么样?

我找到了this,但是我正在寻找一种可以使用http://localhost:53407/Service.svc/Items?year=2019类中的参数的解决方案。

1 个答案:

答案 0 :(得分:0)

我找到了一个简单的解决方案:

IndexError

WCF服务允许通过覆盖protected override void OnStartProcessingRequest(ProcessRequestArgs args) { CurrentDataSource.YourCustomVariable = DoWhatYouNeet(args.OperationContext); base.OnStartProcessingRequest(args); } 来拦截每个呼叫,该OnStartProcessingRequest传递包括DataServiceOperationContext在内的请求参数,我们基本上可以找到所有内容。