Я посмотрел в SO и в других местах и видел вопросы, задаваемые по этому поводу, а также некоторые ответы, которые все еще не имеют смысла для меня в моем случае.
Я рефакторинг моего рабочего решения VStudio 2010, которое имеет:
- один проект с веб-сервисом ASMX
- другой отдельный проект для прокси-класса (здесь нет кода, кроме того, что генерируется Добавить веб-ссылку
- другой отдельный проект для клиента (содержит ссылку на ProxyClass.dll
Новое решение VStudio 2010 содержит:
- один проект библиотеки служб типа WCF длясам по себе контракт ( IFileService.cs ) один проект библиотеки служб типа WCF для реализации контракта ( FileService.cs )
- другой отдельный проект дляпрокси-класс (здесь нет кода, кроме того, что генерируется Добавить ссылку на службу
- другой отдельный проект для клиента (содержит ссылку на WCFProxyClass.dll)
Вот контракт, который заканчивается тремя выходными параметрами (и реализация того же порядка того же порядка):
[ServiceContract(Name = "IFileService", Namespace = "http://www.cbmiweb.com/TrimWCF/2011/11")]
public interface IFileService
{
[OperationContract]
public string DownloadFile(string trimURL
, string TrimRecordNumber
, string CallerPC
, string RequestorID
, out byte[] docContents
, out string returnFiletype
, out string returnFilename)
{
Вот что Добавить ссылку на службусгенерировано в моем проекте класса прокси:
public string DownloadFile(
out byte[] docContents
, out string returnFiletype
, out string returnFilename
, string trimURL
, string TrimRecordNumber
, string CallerPC
, string RequestorID)
{
return base.Channel.DownloadFile(out docContents, out returnFiletype, out returnFilename, trimURL, TrimRecordNumber, CallerPC, RequestorID);
}
Я прочитал ответы в диапазоне от «вы не можете использовать parms в WCF» до «вы не должны использовать Add Service Reference, но вместо этого используйте svcutil.exe» для «порядок параметров не имеет значения ... он все равно будет работать ".
Я не понимаю, что делать здесь (и что я сделал не так, что привело к этому измененному порядку и ПОЧЕМУ это произошло).