2013-10-28 5 views
12

वहाँ SignalR में कुछ इस तरह करने के लिए कोई रास्ता नहीं है:मैं IHubContext से गतिशील रूप से चयनित सिग्नलआर क्लाइंट विधि कैसे कॉल कर सकता हूं?

public void CallClientMethod(string methodName, MyObject data) 
{ 
    var ctx = GlobalHost.ConnectionManager.GetHubContext<MyHub>(); 
    ctx.Clients.All.methodName(data); 

    // or alternatively 
    ctx.Clients.All.CallClientMethod(methodName, data); 
} 

ऊपर के उदाहरण के इरादे के बजाय वास्तविक तंत्र बताए गए हैं - मैं रनटाइम पर कॉल करने के लिए है, बजाय समय संकलन विधि निर्धारित करना चाहते हैं।

उत्तर

25

आप ऐसा कर सकते हैं:

public void CallClientMethod(string methodName, MyObject data) 
{ 
    var ctx = GlobalHost.ConnectionManager.GetHubContext<MyHub>(); 
    IClientProxy proxy = ctx.Clients.All; 

    proxy.Invoke(methodName, data); 
} 
+0

भयानक, धन्यवाद –

+1

विधि नाम उद्धरण चिह्नों के बिना इस्तेमाल नहीं किया जाना चाहिए? अभी सभी विधियों को "methodName" कहा जाता है –

+0

ओमग! मैं इतनी देर के लिए यह खोज रहा था! :) धन्यवाद!! – aup

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

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