Можно ли выразить ключевое слово params через определение WSDL - PullRequest
3 голосов
/ 22 мая 2011

Приложение, которое я разрабатываю, предоставляет метаданные службы для службы WCF, реализующей следующий контракт на обслуживание:

[ServiceContract]
public interface IService
{
    [OperationContract]
    object Execute( string action, params object[] args );
}

После добавления ссылки на сервис я заметил, что в контракте на обслуживание нет ключевого слова params и его реализация в сгенерированном файле Reference.cs.

Есть ли params аналог в определении WSDL?

Или params является чем-то специфичным для C # и не может быть выражено через определение WSDL, поэтому генератор служебного клиента не знает, что params следует добавить во время генерации?

1 Ответ

3 голосов
/ 22 мая 2011

params - это просто синтаксический сахар, который позволяет вам вызывать метод, ожидающий массив объектов, без передачи подготовленного массива. WCF ничего не знает об этом - он должен только ожидать массив объектов. Btw. Передача массива object в служебную операцию может привести к множеству проблем, поскольку при передаче пользовательского объекта в качестве параметра WCF может не знать, как сериализовать объект.

...