2012-01-20 15 views
5

मेरे पास एक डब्ल्यूसीएफ विधि है जो मुझे "उपयोगकर्ता", "भूमिकाएं" या कुछ और जैसे कस्टम ऑब्जेक्ट्स की एक सरणी देता है, और इसमें पृष्ठ आउटपुट होता है। डब्ल्यूसीएफ विधि में पैरामीटर है, संग्रहीत प्रक्रिया पंक्तियों का चयन करती है और सभी पंक्तियों के कुल रिकॉर्ड (केवल चयनित नहीं) लौटाती है, मैं आउट पैरामीटर में रिटर्न वैल्यू पढ़ने की अपेक्षा करता हूं। लेकिन एक समस्या है जिसे मैं लैम्ब्डा अभिव्यक्ति में डब्ल्यूसीएफ-विधि कहता हूं:.net लैम्ब्डा अभिव्यक्ति और आउट पैरामीटर

var client = MySvcRef.MySvcClient(); 
var assistant = FormsAuthenticationAssistant(); 
var result = assistant.Execute<MySvcRef.UserClass[]>(
    () => client.GetAllUsers(out totalRecords, pageIndex, pageSize), 
    client.InnerChannel); 

मेरे उदाहरण के लिए बेहतर समाधान क्या है?

+1

क्या आप अपना प्रश्न या समस्या क्या स्पष्ट कर सकते हैं है? – BrokenGlass

+0

मेरी समस्या यह है कि आउट पैरामीटर का प्रयोग लैम्ब्डा में नहीं किया जा सकता है, मुझे अपने डब्ल्यूसीएफ या अन्य भाग के आर्किटेक्चर में क्या बदलना चाहिए? –

+0

यह बेहतर होगा यदि आप एक साधारण कोड तैयार करेंगे जो वीएस से कॉपी-पैस्ड-ए-आसान-रन हो सकता है, इसलिए मैं मदद कर पाऊंगा। – Restuta

उत्तर

2

मैं बाहर मानकों के साथ lambdas प्रयास नहीं किया है लेकिन आम तौर पर आप सिर्फ पहले से चर घोषित करने के लिए की जरूरत है:

var client = MySvcRef.MySvcClient(); 
var assistant = FormsAuthenticationAssistant(); 
var totalRecords; 
var result = assistant.Execute<MySvcRef.UserClass[]>(
()=>client.GetAllUsers(out totalRecords, pageIndex, pageSize), 
    client.InnerChannel); 

संपादित:

आपका सबसे अच्छा शर्त एक अलग साथ GetAllUsers रैप करने के लिए द्वारा मई कक्षा जो out पैरामीटर का उपयोग कर सकती है:

Temp temp = new Temp(); 

var result = assistant.Execute<MySvcRef.UserClass[]>(()=>temp.GetAllUsers(client, pageIndex, pageSize),client.InnerChannel); 
int totalRecords = temp.TotalRecords; 

... 

class Temp 
{ 
    public int TotalRecords; 
    public MySvcRef.UserClass[] GetAllUsers(MySvcClient client, int pageIndex, int pageSize) 
    { 
     int totalRecords; 
     var result = client.GetAllUsers(out totalRecords, pageIndex, pageSize); 
     TotalRecords = totalRecords; 
     return result; 
    } 

} 
+0

उत्तर के लिए धन्यवाद, लेकिन यह कोड एक त्रुटि उत्पन्न करेगा! –

+0

किस तरह की त्रुटि? – Restuta

+0

त्रुटि रेफरी या बाहर पैरामीटर 'totalRecords' एक गुमनाम विधि, लैम्ब्डा अभिव्यक्ति, या क्वेरी अभिव्यक्ति –

संबंधित मुद्दे