Я новичок в WCF и пытаюсь донести до меня некоторые идеи.
В основном у меня есть проект веб-приложения WCF со следующим в его файле web.config:
<system.serviceModel>
<services>
<service name="WcfService1.ServiceContract.IDirectorySearchService" behaviorConfiguration="defaultServiceBehavior">
<endpoint name="restxml" address="xml" binding="webHttpBinding" contract="WcfService1.ServiceContract.IDirectorySearchServiceXml" behaviorConfiguration="xmlRestBehavior"/>
<endpoint name="restjson" address="json" binding="webHttpBinding" contract="WcfService1.ServiceContract.IDirectorySearchServiceJson" behaviorConfiguration="jsonRestBehavior"/>
<endpoint name="soap" address="soap" binding="basicHttpBinding" contract="WcfService1.ServiceContract.IDirectorySearchService"/>
<endpoint name="mex" address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="defaultServiceBehavior">
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="xmlRestBehavior">
<webHttp/>
</behavior>
<behavior name="jsonRestBehavior">
<enableWebScript/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
Мои интерфейсы выглядят так:
[ServiceContract]
public interface IDirectorySearchServiceXml
{
[OperationContract]
[WebGet(UriTemplate = "Search/")]
SearchResults Search();
}
[ServiceContract]
public interface IDirectorySearchServiceJson
{
[OperationContract]
[WebGet(UriTemplate = "Search/")]
SearchResults Search();
}
[ServiceContract]
public interface IDirectorySearchService
{
[OperationContract]
SearchResults Search(int? sportId, int? instituteId, DateTime? startDate, DateTime? endDate);
}
Теперь часть, с которой у меня возникли небольшие проблемы, - это то, что мне еще нужно, чтобы это запустить и запустить ... Например, учитывая, что .svc-файлы мне нужны, и у меня правильная конфигурация ... И какие адреса мне нужно использовать, чтобы запустить его через браузер или тестовый клиент WCF. Обратите внимание, я в настоящее время использую 3,5.
Приветствие
Anthony
UPDATE:
Так что, если у меня что-то вроде следующего, мне понадобятся 3 разных файла SVC ... Если это так, то нет смысла иметь адресную часть в конечной точке ...
public class DirectorySearchServiceXml : IDirectorySearchServiceXml
{
...
}
public class DirectorySearchServiceJson : IDirectorySearchServiceJson
{
...
}
public class DirectorySearchService : IDirectorySearchService
{
...
}
Но я мог бы создать 1 класс, который явно влияет на все 3 интерфейса, тогда у меня был бы только 1 svc, и тогда адрес стал бы подходящим ... Это правильно?