Подтвердить что ты не робот

WCF потребляется, поскольку WebService добавляет логический параметр?

Я создал службу WCF по умолчанию в VS2008. Он называется "Service1"

public class Service1 : IService1
{
    public string GetData( int value )
    {
        return string.Format("You entered: {0}", value);
    }

    public CompositeType GetDataUsingDataContract( CompositeType composite )
    {
        if ( composite.BoolValue )
        {
            composite.StringValue += "Suffix";
        }
        return composite;
    }
}

Он отлично работает, интерфейс IService1:

[ServiceContract]
public interface IService1
{

    [OperationContract]
    string GetData( int value );

    [OperationContract]
    CompositeType GetDataUsingDataContract( CompositeType composite );

    // TODO: Add your service operations here
}

Это все по умолчанию; Visual Studio 2008 создала все это.

Затем я создал простое приложение Winforms, чтобы "проверить" это. Я добавил ссылку на службу к моей вышеупомянутой службе, и все это работает. Я могу установить и вызвать myservice1.GetData(100); и я получаю результат.

Но мне сказали, что эта услуга должна быть использована приложением Winforms.NET 2.0 через веб-службы, поэтому я приступил к добавлению ссылки на новое приложение Winforms.NET 2.0, созданное с нуля (только одна winform с именем form1). На этот раз, добавив "веб-ссылку", он добавил типичный "localhost", принадлежащий веб-сервисам; мастер увидел службу WCF (работает на фоне) и добавил ее.

Когда я попытался использовать это, я узнал, что метод GetData (int) теперь был GetData (int, bool).

Здесь код

    private void button1_Click( object sender, EventArgs e )
    {
        localhost.Service1 s1 = new WindowsFormsApplication2.localhost.Service1();
        Console.WriteLine(s1.GetData(100, false));
    }

Обратите внимание на ложь в вызове GetData?

Я не знаю, что это за параметр или откуда это произошло, он называется "bool valueSpecified".

Кто-нибудь знает, откуда это происходит? Что-нибудь еще, что я должен сделать, чтобы использовать службу WCF как WebService из .NET 2.0? (WinForms).

4b9b3361

Ответ 1

Хорошо... видимо вот ответ и возможные решения или обходные пути.