wcf-data-services - WCF 数据服务和 url 参数
问题描述
service.svc
我在我的 Visual Studio 项目中创建了一个添加 WCF 服务项的服务。它定义如下:
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;
}
}
}
作为定义,服务被调用http://localhost:53407/Service.svc/Items
。
我正在寻找是否有办法向 url 添加参数,以便在服务器端使用它们来过滤项目。例如http://localhost:53407/Service.svc/Items?year=2019
有可能吗?如何?
我找到了这个,但我正在寻找一个可以在MyContext
类中使用参数的解决方案。
解决方案
我找到了一个简单的解决方案:
protected override void OnStartProcessingRequest(ProcessRequestArgs args)
{
CurrentDataSource.YourCustomVariable = DoWhatYouNeet(args.OperationContext);
base.OnStartProcessingRequest(args);
}
WCF 服务允许通过重写OnStartProcessingRequest
传递请求参数来拦截每个调用,包括DataServiceOperationContext
我们在哪里找到基本上所有内容。
推荐阅读
- python - 按钮、树形视图的自定义样式
- android - 尝试在空对象引用上调用虚拟方法'boolean android.graphics.Bitmap.compress
- python - 在安装目录中包含静态文件
- c# - How to check a box in CheckedListBox while the items in the list are custom objects in a C# window form application?
- c - printf("%s")、printf(s) 和 fputs 有什么区别?
- perl - perl中的Sqlite连接字符串
- wordpress - 编辑主题自定义菜单
- python - 如何使用函数的返回值并在下一个函数中使用它
- mysql - MySQL 字典查询优化
- php - 在向数据库插入多张图像时,在连接到图像表的主表中添加了多行