Как определить URL-адрес ссылки клиента службы данных WCF? - PullRequest
1 голос
/ 13 октября 2011

Для доступа к OData в Windows Phone вы делаете это:

// Declare the data service objects and URIs.
NorthwindEntities context;
Uri northwindUri =
    new Uri("http://services.odata.org/Northwind/Northwind.svc/");
DataServiceCollection<Customer> customers;

// Initialize the context and the binding collection 
context = new NorthwindEntities(northwindUri);
customers = new DataServiceCollection<Customer>(context);

// Define a LINQ query that returns all customers.
var query = from cust in context.Customers
            select cust;

// Register for the LoadCompleted event.
customers.LoadCompleted
    += new EventHandler<LoadCompletedEventArgs>(customers_LoadCompleted);

// Load the customers feed by executing the LINQ query.
customers.LoadAsync(query);

Но я уже знаю URL из справочника службы.

Не могу я просто передать это аргументу URI?

Есть ли простой способ получить доступ к настроенному URL?

Это хорошая идея?

1 Ответ

1 голос
/ 13 октября 2011

Если у вас определен сервисный клиент, вы можете получить используемый URI, выполнив:

client.Endpoint.Address.Uri

В app.config определяется ссылка на сервис:

<client>
  <endpoint address="http://localhost:36294/Services/Service1.svc"
      binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_IService1"
      contract="ServiceReference1.IService1" name="BasicHttpBinding_IService1" />
</client>

Если у вас это уже есть в приложении (web.config для веб-приложения). Тогда вам вообще не нужно определять конечную точку, так как она уже существует и будет захвачена при реализации.

Предполагается, что служба является службой WCF, и ссылка добавляется через 'Добавить ссылку на службу ...'

...