我有一个WCF Data service
使用反射提供程序来公开数据上下文的方法。现在我需要实现一些简单的服务方法(有所有的动作。它们没有返回值)。我用谷歌做了一些研究,也发现了很多帖子。但是我从来没有找到类似默认实现的东西IDataServiceActionProvider
,例如使用属性或类似的东西。
现在的问题是:我真的需要自己实现IDataServiceActionProvider
还是有类似的东西ReflectionDataServiceActionProvider
?
我有一个WCF Data service
使用反射提供程序来公开数据上下文的方法。现在我需要实现一些简单的服务方法(有所有的动作。它们没有返回值)。我用谷歌做了一些研究,也发现了很多帖子。但是我从来没有找到类似默认实现的东西IDataServiceActionProvider
,例如使用属性或类似的东西。
现在的问题是:我真的需要自己实现IDataServiceActionProvider
还是有类似的东西ReflectionDataServiceActionProvider
?
这可能不是您想听到的答案,但我不知道 IDataServiceActionProvider 的默认实现。
您可能想看看使用 Web API 而不是 WCF 数据服务创建 OData 服务;据我了解,使用 Web API 创建动作要容易得多。
从Alex 的博客文章中获取的一些快速示例代码来演示简单性:
ActionConfiguration pullWheelie = modelBuilder.Entity<Motorcycle>().Action(“PullWheelie”);
pullWheelie.Parameter<int>(“ForSeconds”);
pullWheelie.Returns<bool>();
或者,您可以使用 WCF 数据服务来创建“服务操作”,而不是创建 OData 操作,这在某种程度上是 OData 的遗留操作/功能能力。使用 WCF 数据服务创建其中之一非常容易,但请注意,它们将在 OData v4 中完全消失。要创建服务操作,您只需在数据源中创建一个方法并使用WebGet
orWebInvoke
属性对其进行注释。一旦你配置了访问方法的权限InitializeService
,你的方法就可以被客户端调用。有关详细信息,请参阅此文档。