Vb.net 如何将ADO.NET数据服务MaxProtocolVersion设置为使用V2?
我完全不熟悉ADO.NET/WCF数据服务。在我第一次设置和测试ADO.NET数据服务时,我遇到了一个令人费解的错误: 响应要求使用协议的版本2,但 数据服务的MaxProtocolVersion设置为 DataServiceProtocolVersion.V1 在线参考表明我需要设置:Vb.net 如何将ADO.NET数据服务MaxProtocolVersion设置为使用V2?,vb.net,.net-3.5,wcf-data-services,visual-studio-2008-sp1,Vb.net,.net 3.5,Wcf Data Services,Visual Studio 2008 Sp1,我完全不熟悉ADO.NET/WCF数据服务。在我第一次设置和测试ADO.NET数据服务时,我遇到了一个令人费解的错误: 响应要求使用协议的版本2,但 数据服务的MaxProtocolVersion设置为 DataServiceProtocolVersion.V1 在线参考表明我需要设置: config.DataServiceBehavior.MaxProtocolVersion = Common.DataServiceProtocolVersion.V2 但是,此属性在IntelliSense
config.DataServiceBehavior.MaxProtocolVersion = Common.DataServiceProtocolVersion.V2
但是,此属性在IntelliSense中不可用,并且在手动编写代码时会产生生成错误
我正在使用VisualStudio2008SP1、.NET3.5SP1和VB.NET。如何启用协议的版本2?经过大约一天半的搜索(并重新应用VS2008 SP1),这篇博客文章终于澄清了问题: 结果证明我的安装一切正常,但我忽略了InitilizeService()方法的签名发生了微妙的变化这一事实。正如Stephen Forte在他的博客中指出的:
1: //change the IDataServiceConfiguration to DataServiceConfiguration
2: public static void InitializeService(DataServiceConfiguration config)
3: {
4: config.SetEntitySetAccessRule("*", EntitySetRights.All);
5: //take advantage of the "2.0" features
6: config.DataServiceBehavior.MaxProtocolVersion =
7: System.Data.Services.Common.DataServiceProtocolVersion.V2;
8: }
您需要更改的第一件事是在第2行中,将接口IDataServiceConfiguration更改为仅DataServiceConfiguration(我确信有更好的方法来实现这一点,我还没有找到)。接下来,将DataServiceBehavior的MaxProtocolVersion属性设置为V2。之后,您可以利用所有的新功能
我的。一个简单的“我”所产生的差异令人惊讶。为了回答Stephen的担忧,MSDN也支持这一点,但他们目前没有指出引用接口与实现对象的区别:
以下是VB中的代码:
'change the IDataServiceConfiguration to DataServiceConfiguration
Public Shared Sub InitializeService(ByVal config As DataServiceConfiguration)
config.SetEntitySetAccessRule("*", EntitySetRights.All)
'take advantage of the "2.0" features
config.DataServiceBehavior.MaxProtocolVersion = System.Data.Services.Common.DataServiceProtocolVersion.V2
End Sub
编译、测试并通过。我刚刚迈出了进入更大世界的第一步