2012-04-10 19 views
6

मैं अभी भी डब्लूसीएफ समाधान पर काम कर रहा हूं जो प्रोग्राम के बैकएंड से पूछताछ करने और परिणामों को वापस करने में सक्षम होना चाहिए।डब्ल्यूसीएफ ऑब्जेक्ट्स की एक सरणी पूछताछ

बैकएंड भंडार वस्तुओं की एक शब्दकोश Groups कहा जाता है और वे जैसे कार्यों के साथ पूछे जा सकता है: टैग द्वारा समूहों की सूची प्राप्त करने के लिए आईडी

  • GetGroups द्वारा एक समूह पाने के लिए

    • GetGroup

    GetGroup डब्ल्यूसीएफ टेस्ट क्लाइंट और मेरे द्वारा बनाए गए एप्लिकेशन के साथ ठीक काम करता है।

     List<string> values = new List<string>(); 
         GroupServiceClient client = new GroupServiceClient("WSHttpBinding_IGroupService"); 
         www.test.co.uk.programme.programme Group = new www.test.co.uk.programme.programme(); 
         DateTime time = DateTime.Now; 
         values.Clear(); 
         client.Open(); 
    
         Group.number = textBox1.Text; 
         client.GetGroup(ref time, ref Group); 
    
         GroupStorageMessage toReturn = new GroupStorageMessage(); 
         toReturn.group = Group; 
    
         selectedGroupId = Convert.ToString(toReturn.group.number); 
    
         values.Add(Convert.ToString(toReturn.group.number)); 
         values.Add(Convert.ToString(toReturn.group.name)); 
    
         listBox1.ItemsSource=values; 
    
         client.Close(); 
    

    GetGroups काम करता है पूरी तरह से WCF टेस्ट क्लाइंट के साथ नहीं बल्कि अपने आवेदन के साथ: और यह एप्लिकेशन के पास निम्न कोड फार्म के साथ काम करता है।

    यह एकदम सही ढंग से क्वेरी भेजता है लेकिन इसे वापस Null करता है (कृपया ध्यान दें इस कोड को अन्य एप्लिकेशन के लिए फार्म है और मैं एक संदर्भ के बजाय एक प्रॉक्सी फ़ाइल उपयोग कर रहा हूँ कि)

     ServiceReference1.programme Group = new ServiceReference1.programme(); 
         ServiceReference1.GroupServiceClient Client = new ServiceReference1.GroupServiceClient(); 
         DateTime Time = DateTime.Now; 
    
         Client.Open(); 
    
         string[] aa = new string[1]; 
    
         aa[0] = textBox1.Text; 
         Group.tags = aa; 
         Client.GetGroups(ref Time, Group); 
    
         ServiceReference1.GroupArrayMessage toReturn = new ServiceReference1.GroupArrayMessage(); 
    
         ServiceReference1.programme[] Groups = new ServiceReference1.programme[1]; 
    
         toReturn.groups = Groups; = returns null 
    

    नई ServiceReference1 में। कार्यक्रम [1]; मैं वास्तव में अनुमान लगा रहा हूं कि वहां क्या रखा जाए।

    इंटरफ़ेस:

    [ServiceContract(Namespace = "http://www.Test.co.uk/groupstorage")] 
    public interface IGroupStorageService 
    { 
        /** 
        * Get a group from the collection of groups 
        */ 
        [OperationContract] 
        GroupStorageMessage GetGroup(GroupStorageMessage message); 
        /** 
        * Add a group to the collection of groups 
        */ 
        [OperationContract] 
        void AddGroup(GroupStorageMessage message); 
        /** 
        * Remove a group from the collection of groups 
        */ 
        [OperationContract] 
        void RemoveGroup(GroupStorageMessage message); 
        /** 
        * Update a group in the collection of groups 
        */ 
        [OperationContract] 
        void UpdateGroup(GroupStorageMessage message); 
    
        [OperationContract] 
        GroupArrayMessage GetGroups(GroupStorageMessage message); 
    } 
    

    संदेश अनुबंध:

    [MessageContract] 
    public class GroupArrayMessage 
    { 
        /** 
        * Message header is the timestamp when the message was created 
        */ 
        [MessageHeader(Name = "time")] 
        public DateTime Time; 
        /** 
        * Message body is a collection of Users 
        */ 
        [MessageBodyMember(Name = "groups")] 
        public Group[] Groups; 
    } 
    

    समूह संपर्क (कभी कभी कार्यक्रम के रूप में संदर्भित)

    [DataContract(Namespace = "http://www.test.co.uk/programme", Name = "programme")] 
    public class Group 
    { 
        /** 
        * The number representing the Programme (Programme ID) 
        */ 
        [DataMember(Name = "number")] 
        public string Number; 
        /** 
        * The name of the Programme 
        */ 
        [DataMember(Name = "name")] 
        public string Name; 
        /// <summary> 
        /// Add Tags 
        /// </summary> 
        [DataMember(Name = "tags")] 
        public string[] Tags; 
    
  • +0

    कृपया सेवा इंटरफ़ेस और सेवा कार्यान्वयन कक्षा का कोड पेस्ट करें। कृपया ग्रुप क्लास के लिए कोड पेस्ट करें। जब कोड उपलब्ध होगा तो जवाब देना आसान होगा –

    +1

    पीएस मुझे पता है कि आवेदन भेजा गया क्वेरी ठीक है, क्योंकि बैकएंड लॉगिंग सिस्टम इसे सफल क्वेरी के रूप में चिह्नित करता है और परिणाम को लॉग फ़ाइल – user1211929

    +0

    कूल प्रश्न में वापस कर देता है। App.config फ़ाइलों के बारे में क्या। क्या वे आपके दोनों ऐप्स में बराबर हैं? –

    उत्तर

    4

    मैं अंत में समाधान नहीं मिला:

     GroupService.GroupArrayMessage toReturn = new GroupService.GroupArrayMessage(); 
    
    
         GroupService.programme[] Groups = Client.GetGroups(ref Time, Group); 
    
         toReturn.groups = Groups; 
    
         listBox1.ItemsSource = toReturn.groups; 
    
    संबंधित मुद्दे