Во избежание затрат на обслуживание с использованием служб данных WCF я избегаю генерации ссылок на службы.Не использовать ссылку на службу данных WCF
В настоящее время я использую класс System.Data.Services.Client.DataServiceContext в сочетании с DataServiceQuery. Это работает, но означает, что в коде или конфигурации должны быть некоторые жестко закодированные строки - имя набора объектов и URI.
Каковы альтернативы этому? Любые подводные камни, о которых я должен знать?
я увидел то, что упомянутое создание ChannelFactory
Однако, это выглядело довольно громоздким или, по крайней мере, на поверхности не казалось лучше, что я сейчас делаю.
EDIT Немного более подробно - здесь есть служба, чтобы разоблачить EF DbContext:
public class DocumentService : DataService<DocumentContext>
{
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("Documents", EntitySetRights.All);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
config.UseVerboseErrors = true;
}
protected override DocumentContext CreateDataSource()
{
return new DocumentContext("DocumentsContext");
}
}
И как я ссылаться на него без явной ссылки:
new DataServiceContext(uri, maxVersion).CreateQuery<DocumentEntity>(entitySetName)....etc
Каковы альтернативы этому? = альтернативы классу DataServiceContext
'Это работает, но означает, что должны быть некоторые жестко закодированные строки', если строки могут быть изменены пользователем, вы можете просто сохранить их в файле конфигурации. В любом случае вам понадобятся эти конечные точки для создания ссылки на службу. – PoweredByOrange