Например, может ли служба WCF выступать в качестве фабрики для других служб WCF? .: напримерМожет ли одна служба WCF вернуть другую?
[ServiceContract(Namespace = "Foo")]
interface IThing
{
[OperationContract]
void DoSomething();
}
[ServiceContract(Namespace = "Foo")]
interface IMakeThings
{
[OperationContract]
IThing Create(string initializationData);
}
Аналогично может принять интерфейс другой интерфейс в качестве параметра?
[ServiceContract(Namespace = "Foo")]
interface IUseThings
{
[OperationContract]
void UseThing(IThing target);
}
Будет ли это требовать регулировки известных типов?
Все интерфейсы будут определены спереди и известны как клиенту, так и службе.
Нет. WCF - это ** система на основе сообщений - она передает XML-сериализацию ** данные ** (и только данные - без кода или методов) от клиента к серверу и обратно. Это ** НЕ *, предназначенное для того, чтобы быть чем-то вроде удаленного доступа или поддержки «вызова удаленного объекта» или что-то в этом роде. –
На стороне клиента есть прокси, а не реальные экземпляры службы. Поэтому вопрос не имеет смысла. –
Возможно, мне что-то не хватает, но теоретически было бы возможно, чтобы клиентская сторона обернула результат возврата IMakeThings.Create() в соответствующий прокси-сервер «IThing» на основе привязок к службе «IMakeThings». Ответ на этот вопрос вполне может быть «нет», что хорошо, но я думаю, что сам вопрос имеет смысл. – WaffleSouffle