2009-02-10 32 views
10

Tôi đã tạo Dịch vụ WCF mặc định trong VS2008. Nó được gọi là "Service1"WCF được sử dụng khi WebService thêm tham số boolean?

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; 
    } 
} 

nó hoạt động tốt, giao diện IService1:

[ServiceContract] 
public interface IService1 
{ 

    [OperationContract] 
    string GetData(int value); 

    [OperationContract] 
    CompositeType GetDataUsingDataContract(CompositeType composite); 

    // TODO: Add your service operations here 
} 

Đây là tất cả theo mặc định; Visual Studio 2008 đã tạo tất cả điều này.

Sau đó, tôi đã tạo một ứng dụng Winforms đơn giản để "kiểm tra" điều này. Tôi đã thêm Tài liệu tham khảo dịch vụ vào dịch vụ được đề cập ở trên và tất cả đều hoạt động. Tôi có thể instanciate và gọi myservice1.GetData (100); và tôi nhận được kết quả. Tuy nhiên, tôi đã được thông báo rằng dịch vụ này sẽ phải được ứng dụng .NET 2.0 Winforms sử dụng thông qua Dịch vụ Web, vì vậy tôi đã tiến hành thêm tham chiếu tới ứng dụng Win 2.0s .NET 2.0 mới được tạo từ đầu (chỉ có một dạng winform được gọi là hình thức 1). Lần này, khi thêm "tham chiếu web", nó thêm vào một "localhost" điển hình thuộc về webservices; trình hướng dẫn đã thấy Dịch vụ WCF (chạy trên nền) và thêm nó.

Khi tôi cố gắng tiêu thụ điều này, tôi phát hiện ra rằng phương thức GetData (int), giờ là GetData (int, bool).

Dưới đây là đoạn code

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

Thông báo các sai trong cuộc gọi GetData?

Tôi không biết tham số đó là gì hoặc thông số đó đến từ đâu, nó được gọi là "bool valueSpecified".

Có ai biết nơi này đến từ đâu không? Bất cứ điều gì khác tôi nên làm gì để tiêu thụ một dịch vụ WCF như một WebService từ .NET 2.0? (winforms).

Trả lời

11

Tốt ... rõ ràng là here's câu trả lời và giải pháp hoặc giải pháp có thể có.

+0

Báo cáo tương tự như tuần tự hóa XML :) – leppie

+0

Nếu tôi có thể upvote câu trả lời và câu hỏi của bạn một lần nữa, tôi sẽ. Tôi đã dành 2 giờ tự hỏi tại sao tôi đã nhận được "không có gì" phiên bản của các thông số mà tôi đã được thiết lập và đi đến một dịch vụ từ .NET 2.0 đến một dịch vụ .NET 4 WCF - Tôi đã thấy những booleans tùy ý và không nghĩ gì về chúng. Cảm ơn v.much! – SpaceBison

+0

@SpaceBison - upvoted cho bạn :) – Frozenskys

Các vấn đề liên quan