Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用intellisense调用wcf数据服务操作_C#_Metadata_Wcf Data Services - Fatal编程技术网

C# 使用intellisense调用wcf数据服务操作

C# 使用intellisense调用wcf数据服务操作,c#,metadata,wcf-data-services,C#,Metadata,Wcf Data Services,我有以下WCF数据服务 [System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)] public class MyWcfDataService: DataService<MyEntities> { // This method is called only once to initialize service-wide policies. public static void

我有以下WCF数据服务

[System.ServiceModel.ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class MyWcfDataService: DataService<MyEntities>
{
    // 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("*", EntitySetRights.All);
        config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);
        config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
    }

    [WebGet]
    public IEnumerable<Customer> GetActiveCustomers()
    {
        return this.CurrentDataSource.Customers.Where(x=> ! x.IsDeleted); 
    }

}
我知道我可以通过请求
http://localhost:10144/Services/MyWcfDataService.svc/GetActiveCustomers
。但是VisualStudio下载元数据的意义是什么呢。因为我也从.net应用程序中使用该服务,所以如果我可以使用intellicense访问该方法,那就太好了

换句话说在我的客户上,当我添加对该服务的引用时,我可以看到:

<Schema Namespace="WebService.Data" xmlns="http://schemas.microsoft.com/ado/2008/09/edm">
      <EntityContainer Name="MyEntities" >
        <EntitySet Name="Customers" ..... etc />
        ... etc
        <FunctionImport Name="GetActiveCustomers" ReturnType="Collection(Customer)"  ... etc />

... 等

service.edmx
上。Visual Studio应该使用它来调用这些方法吗?

恐怕在OData V3(WCF数据服务)上工作的添加服务引用不支持在.NET客户端中自动生成服务操作。但是,您可以在生成的服务上下文类中编写自己的方法来调用操作。像这样:

IEnumerable<Customer> GetActiveCustomers()
{
    Uri requestUri = new Uri(this.BaseUri.OriginalString.Trim('/') + "/GetActiveCustomers");
    return this.Execute<Customer>(requestUri);
}
IEnumerable GetActiveCustomers()
{
Uri requestUri=新Uri(this.BaseUri.OriginalString.Trim('/')+“/GetActiveCustomers”);
返回this.Execute(requestUri);
}
有了它,您可以编写
var-actCusts=context.GetActiveCustomers()
并将结果返回到.NET应用程序中

IEnumerable<Customer> GetActiveCustomers()
{
    Uri requestUri = new Uri(this.BaseUri.OriginalString.Trim('/') + "/GetActiveCustomers");
    return this.Execute<Customer>(requestUri);
}