मैं SignalR 2.0 के साथ एक मौजूदा आईओसी उपयोग कर सकते हैं कैसे?SignalR में एक मौजूदा आईओसी कंटेनर का उपयोग करते हुए 2.0
ट्यूटोरियल से ऐसा प्रतीत होता मैं सेटअप करने के लिए एक विशेषता के माध्यम से एक वर्ग Owin से कहा जा करने की जरूरत है:
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(SignalRChat.Startup))]
namespace SignalRChat
{
public class Startup
{
public void Configuration(IAppBuilder app /*HOW AM I GONNA GET UNITY CONTAINER HERE?*/)
{
var hubConfig = new HubConfiguration()
{
EnableJSONP = true,
EnableDetailedErrors = true,
EnableJavaScriptProxies = true,
Resolver = new SignalRUnityDependencyResolver(container)
};
// Any connection or hub wire up and configuration should go here
app.MapSignalR(hubConfig);
}
}
}
समस्या यहाँ है कि मैं पहले से ही एक कंटेनर है, कि बूट तंगी है और सिंगलटन देखते हैं कंटेनर में ऐसे उदाहरण जिन्हें एक ही मेजबान के तहत साझा एमवीसी ऐप के साथ साझा करने की आवश्यकता है।
हालांकि यहां की समस्या यह है कि पहले के विपरीत, ऐसा नहीं लगता है कि मैं अपने कोड से MapSignalR
विधि को कॉल कर सकता हूं। इसके बजाय मुझे यह करने के लिए ओविन पर भरोसा करना है। हालांकि ओविन को कंटेनर से अवगत नहीं है जिसे मैंने पहले ही सेटअप किया है।
इस को हल करने के लिए सबसे अच्छा तरीका क्या है? मेरे पास कुछ बहुत ही कच्चे विचार हैं कि इनमें से कुछ को पकड़ने के लिए स्थैतिक चर का उपयोग करके समाधान को कैसे हैक करना है - लेकिन मुझे इसके बारे में बहुत नफरत है। कोड भंगुर होगा और ऑपरेशन का क्रम आसानी से एक सूक्ष्म बग पेश कर सकता है।
वहाँ एक रास्ता Owin होने उपरोक्त विधि आह्वान बिना IAppBuilder उदाहरण पर भी नियंत्रण प्राप्त करने के लिए है? सिग्नलआर प्रारंभ होने पर मैं बेहतर तरीके से नियंत्रण कर सकता हूं और मैं कॉन्फ़िगरेशन में अपना आईओसी पास कर सकता हूं।
कि अजीब बात है। सिग्नलआर 2.0 से पहले, एएसपी.नेट ने आपके लिए ग्लोबल.एक्सएक्स कहा और आप वहां पंजीकृत मार्ग हैं। यह काफी वही बात है। – davidfowl