WCF: как генерировать единственный документ WSDL без WSDL:import?

Я использовал C89 во встроенном программировании, и отладка аппаратного обеспечения была кошмарной. У нас было несколько соглашений о кодировании, которые спасли наши здравомыслия:

  1. Все функции возвращают уникальный код ошибки.
  2. Все возвращаемые значения являются автоматическими переменными, передаваемыми по ссылке.

Например:

#define NOERR 0
#define VariableLookupNULL 1024
#define VariableLookupNOTFOUND 1025
... separate #define for each error
#define EvaluateExpressionNULL 1055
#define EvaluateExpressionUNKNOWNOP 1056


int EvaluateExpression( char *expression, int* result )
{
    ASSERT(result != 0);
    if (expression==0)
        return EvaluateExpressionNULL;

    *result = 0;
    while (*expression != 0)
    {
        switch (*expression)
        {
            case ' ':
            case '\t':
                break;  // ignore whitespace

            case 'a':
            ... other variables
            {
                int var = 0;
                int lookupResult = VariableLookup(*expression, &var);
                if (lookupResult != NOERR)
                    return lookupResult;

                *result += var;
                break;
            }

            ... check operators, et al.

            default:
                return EvaluateExpressionUNKNOWNOP;
        }

        ++expression;
    }

    return NOERR;
}

ASSERT был макросом отладки, который прерывал время выполнения.

22
задан D_Guidi 12 June 2009 в 06:53
поделиться

4 ответа

(РЕДАКТИРОВАТЬ: Предыдущий ответ о FlatWSDL удален, потому что, как вы отметили, он касался удаления xsd: import, а не wsdl: import.)

Посмотрите это сообщение в блоге: Control сгенерирован WSDL в WCF

«... Всегда существует один WSDL, созданный для одного целевого URI пространства имен ...»

Есть ли у вас другое пространство имен для ServiceContract, DataContract, ServiceBehavior и т. Д.?

13
ответ дан 29 November 2019 в 04:47
поделиться

Вы также можете использовать проект WCFExtras, у которого есть расширение для создания одного WSDL-файла.

WCFExtras

Набор полезных расширений WCF включая поддержку Soap Header, WSDL документация и др.

Платформа WCF очень расширяема. и позволяет легко добавлять функции которые не являются частью основного продукта. Этот проект содержит некоторые расширения В проекте на основе WCF мне требовалось:

  • Поддержка заголовка SOAP для WCF Добавление WSDL
  • Документация из исходного кода XML Комментарии
  • Переопределить URL-адрес местоположения адреса SOAP
  • Один файл WSDL для лучшей совместимости со старыми инструментами SOAP.

http://wcfextras.codeplex.com/

4
ответ дан 29 November 2019 в 04:47
поделиться

Вам нужно добавить некоторые дополнительные поведения и т. Д.

См. Эти статьи здесь:

http://my-tech-talk.blogspot.com/2008/07/adding- flatwsdl-to-wcf-webservice.html

http://blogs.thinktecture.com/cweyer/archive/2007/05/10/414840.aspx

Есть несколько различных способов добиться этого.

Марк

1
ответ дан 29 November 2019 в 04:47
поделиться

моя проблема заключалась в определениях конечных точек, которые находятся в пространстве имен tempuri.org добавление bindingNamespace к объявлениям конечных точек решает мою проблему. всем спасибо за помощь :)

2
ответ дан 29 November 2019 в 04:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: