2009-02-10 5 views
10

मैंने वीएस -2008 में डिफ़ॉल्ट डब्ल्यूसीएफ सेवा बनाई है। यह "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 
} 

यह डिफ़ॉल्ट रूप से सभी है, विजुअल स्टूडियो 2008 ने यह सब बनाया।

मैंने फिर "परीक्षण" करने के लिए एक सरल विनफॉर्म ऐप बनाया। मैंने उपर्युक्त सेवा में सेवा संदर्भ जोड़ा और यह सब काम करता है। मैं myservice1 instetciate और कॉल कर सकते हैं। GetData (100); और मुझे परिणाम मिल गया।

लेकिन मुझे बताया गया कि इस सेवा को वेब सेवाओं के माध्यम से Winforms .NET 2.0 ऐप द्वारा उपभोग किया जाना चाहिए, इसलिए मैंने स्क्रैच से बनाए गए एक नए Winforms .NET 2.0 एप्लिकेशन का संदर्भ जोड़ने के लिए आगे बढ़ना शुरू किया (केवल एक Winform कहा जाता है फॉर्म 1)। इस बार, "वेब संदर्भ" जोड़ते समय, यह सामान्य "लोकलहोस्ट" को वेब सर्विसेज से जोड़ा गया; जादूगर ने डब्ल्यूसीएफ सेवा (पृष्ठभूमि पर चल रही) देखी और इसे जोड़ा।

जब मैंने इसे उपभोग करने की कोशिश की, तो मुझे पता चला कि 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 कॉल में गलत क्या है?

मुझे नहीं पता कि वह पैरामीटर क्या है या कहां से आया, इसे "बूल वैल्यू स्पेसिस्ड" कहा जाता है।

क्या कोई जानता है कि यह कहां से आ रहा है? .NET 2.0 से वेब सेवा के रूप में डब्ल्यूसीएफ सेवा का उपभोग करने के लिए मुझे और कुछ करना चाहिए? (WinForms)।

उत्तर

11

अच्छी तरह से ... स्पष्ट रूप से here's उत्तर और संभावित समाधान या कामकाज।

+0

एक्सएमएल क्रमबद्धता के समान ही चेतावनी :) – leppie

+0

यदि मैं आपका उत्तर और प्रश्न फिर से उठा सकता हूं, तो मैं चाहता हूं। मैंने 2 घंटे बिताए कि मुझे पैरामीटर के "कुछ भी नहीं" संस्करण क्यों मिल रहे थे, जिन्हें मैं .NET 2.0 से .NET 4 WCF सेवा में एक सेवा में सेट कर रहा था और पास कर रहा था - मैंने इन मनमानी बूलियन को देखा है और उनमें से कुछ भी नहीं सोचा है। धन्यवाद v.much! – SpaceBison

+0

@ स्पेसबिसन - आपके लिए अपवित्र :) – Frozenskys